【发布时间】:2012-03-23 13:21:28
【问题描述】:
我正在尝试使用按钮事件从我的 SQL Server 数据库表中简单地删除一整行。到目前为止,我的任何尝试都没有成功。这就是我想要做的:
public static void deleteRow(string table, string columnName, string IDNumber)
{
try
{
using (SqlConnection con = new SqlConnection(Global.connectionString))
{
con.Open();
using (SqlCommand command = new SqlCommand("DELETE FROM " + table + " WHERE " + columnName + " = " + IDNumber, con))
{
command.ExecuteNonQuery();
}
con.Close();
}
}
catch (SystemException ex)
{
MessageBox.Show(string.Format("An error occurred: {0}", ex.Message));
}
}
}
我一直收到错误:
System.Data.dll 中发生了“System.Data.SqlClient.SqlException”类型的第一次机会异常 发生错误:操作数类型冲突:文本与 int 不兼容
表中的所有列都是TEXT 类型。为什么我不能将 string 类型的函数参数与列进行比较以找到匹配项? (然后删除该行?)
【问题讨论】:
-
您应该为此使用参数。
-
我不知道如何使用参数,有什么例子吗?资源?
-
另外,作为旁注:首先,您不应该再使用
TEXT- 从 SQL Server 2005 开始,它已被弃用。请改用VARCHAR(MAX)。另外:将所有列设为VARCHAR(MAX)闻起来像个糟糕的设计——您真的需要每列 2 GB 的文本吗? REALLY!?!?!? 设计和性能提示:使用适当的数据类型
标签: c# sql-server delete-row