我连接了一个.MDF
数据库文件到C#(Visual Studio)中的aspx文件,但是当我试图执行查询时,它不起作用。在asp.net中连接的SQL Server数据库文件,但查询未执行
下面给出了问题出现的代码。请帮助我。
的com.ExecuteNonQuery()
返回-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!");
}
'ExecuteNonQuery()'返回**受到DELETE,INSERT或UPDATE操作影响的**行数。既然你没有这样做,那么它总是返回-1 - 这是** NOT **错误条件! [这是**所有**很好,并在MSDN上广泛记录!](http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery%28v=vs.110%29 .aspx) - 你只需要**去寻找它!** – 2014-11-08 08:54:52
除了@ marc_s的评论,受影响的行的数量严格依赖于使用的游标类型 – Alireza 2014-11-08 08:59:06
@Arun:我会建议你使用executablecalar if你正在检查单个记录。并通过您的选择查询,似乎你正在检查用户是否存在。我对吗?如果你是请不要在select语句中使用*。 – 2014-11-08 09:30:36