我正在使用SQL服务器管理工作室,我正在尝试更新我的数据库中的某些东西,该列的返回类型是位,所以它的0或1:这是我的sql语句:
public void Update(int ID)
{
SqlConnection myConnection = new sqlConnection etc....;
string query = "UPDATE Table SET ColumnName= ColumnName^ 1 WHERE ID=@ID";
SqlCommand myComm = new SqlCommand(query, myConnection);
myComm.CommandType = CommandType.StoredProcedure;
myComm.Parameters.AddWithValue("@ID", ID);
myConnection.Open();
myComm.ExecuteNonQuery();
myConnection.Close();
}
我收到一条错误,上面写着“无法找到存储过程”,有人可以帮助我这意味着什么:我已经浏览了网络,但我只是不明白? 基于ID,我应该能够将该位更改为0到1或1到0。 我的SQL语句也有问题吗?因为我也收到一个错误,说'='附近的语法不正确。
答案 0 :(得分:2)
更改行
myComm.CommandType = CommandType.StoredProcedure;
到
myComm.CommandType = CommandType.Text;
(或者只删除它,因为CommandType.Text
是默认值)
您没有执行存储过程 - 您正在执行直接SQL。
答案 1 :(得分:1)
我认为你应该删除这一行
myComm.CommandType = CommandType.StoredProcedure;
你没有调用程序..因此,你不需要它。
答案 2 :(得分:0)
更改
myComm.CommandType = CommandType.StoredProcedure;
到
myComm.CommandType = CommandType.Text;
您运行查询而不是存储过程。
答案 3 :(得分:0)
您正在设置CommandType.StoredProcedure,而您实际上正在执行sql查询。您应该使用CommandType.Text。
另外请注意,我永远不会使用内联sql语句。这是一种糟糕的编码实践,会导致安全性和可维护性问题。我会建议你将代码移到商店程序。