SQL Server数据库文件已连接到asp.net中,但查询未执行
本文关键字:查询 执行 net asp 数据库 Server 文件 连接 SQL | 更新日期: 2023-09-27 18:29:43
我在C#(Visual Studio)中将.MDF
数据库文件连接到我的aspx文件,但当我尝试执行查询时,它不起作用。
下面给出的是出现问题的代码。请帮帮我。
com.ExecuteNonQuery()
返回-1,我想在成功执行的情况下应该返回1
SqlConnection con = new SqlConnection(@"Data Source=.'SQLEXPRESS;AttachDbFilename=C:'Users'karunya'Documents'Visual Studio 2010'Projects'Login'Login'App_Data'MyDB.mdf;Integrated Security=True;User Instance=True");
con.Open();
string sql = "SELECT * FROM Data WHERE user = '"+user.Text+"' ";
SqlCommand com = new SqlCommand(sql, con);
int tmp = Convert.ToInt32(com.ExecuteNonQuery());
con.Close();
if (tmp == 1)
{
con.Open();
sql = "SELECT pass FROM LogTable WHERE user = '" + user.Text + "'";
SqlCommand com1 = new SqlCommand(sql, con);
string password = com1.ExecuteScalar().ToString();
if (password == pass.Text)
{
Response.Write("Access Granted!");
}
else
{
Response.Write("Access Denied!");
}
}
else
{
Response.Write("User Name Incorrect!");
}
你想做什么?
它将始终返回-1,因为您正在选择表
做这个。。
DataTable dt = new DataTable();
using (var conn = new SqlConnection(connectionLib))
{
try
{
using (var cmd = new SqlCommand(Query, conn))
{
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
conn.Close();
da.Dispose();
}
}
catch
{
}
}
现在根据你的情况检查条件,如果你想检查行的编号,然后检查
dt.rows.cout
不依赖于ExecuteNonQuery
的返回值,而是在查询中使用COUNT(*)
,并使用ExecuteScalar
返回计数。
并且始终(always)使用参数化查询:
string sql = "SELECT COUNT(*) FROM Data WHERE user = @user";
SqlCommand com = new SqlCommand(sql, con);
com.Parameters.AddWithValue("@user", user.Text);
int tmp = Convert.ToInt32(com.ExecuteScalar());
并将对Close()
的调用移到方法的末尾
请尝试检查连接字符串是否正常,然后尝试此代码
你会知道选择hjas行还是不做你想做的
con.Open();
cmd.Connection = con;
cmd.CommandText = "select * from user where login=@login and pass=@psw";
cmd.Parameters.Add(new SqlParameter("@login", SqlDbType.VarChar, 255)).Value = txtpsedu.Text;
cmd.Parameters.Add(new SqlParameter("@psw", SqlDbType.VarChar, 255)).Value = txtlogin.Text;
dr = cmd.ExecuteReader();
if (dr.Read())
{
//// do what you want here
}
else
{
Response.Write("User Name Incorrect!");
}
dr.Close();
con.Close();
我希望试试