【发布时间】:2016-04-08 17:17:47
【问题描述】:
SqlConnection sc = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=D:\6th sem\DNT\tutorials\application\WindowsFormsApplication2\WindowsFormsApplication2\Login.mdf;Integrated Security=True");
sc.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = sc;
//cmd.CommandText = "SELECT count(*) FROM dictionary WHERE word=@Word AND user=@Unique";
cmd.Parameters.AddWithValue("@Word", textBox_word.Text);
cmd.Parameters.AddWithValue("@Unique", frm.textUserName);
cmd.CommandText = "SELECT COUNT(*) FROM dictionary WHERE word=@Word AND user=@Unique";
int z = (int)cmd.ExecuteScalar();
MessageBox.Show(z.ToString());
if (z >= 1)
{
MessageBox.Show("word already entered in your id");
}
else
{
}
我的代码总是在 else 部分,上面查询的输出总是 0 !!!
【问题讨论】:
-
正确的返回值应该是多少?
-
这是什么关系型数据库? NM... [MSSQLLocalDB]
Dictionary是需要转义的保留字。 msdn.microsoft.com/en-us/library/ms189822.aspx 将字典包裹在 [] -
字典是我在 Visual Studio 本地数据库中的表名
-
把字典用括号括起来能用吗?
SELECT count(*) FROM [dictionary] WHERE word=@Word AND user=@Unique";?也许 cmd.executeSacalar() 正在引发错误,并且由于 z 尚未初始化,它会转到 else 。从上面的链接...“尽管在语法上可以使用 SQL Server 保留关键字作为 Transact-SQL 脚本中的标识符和对象名称,您只能通过使用分隔标识符来做到这一点。” -
回答您的具体问题:是的,您可以在 SQL 查询中同时使用 AND 和 count(*)。
标签: sql sql-server