sql无法找到存储过程''。将bit作为返回类型

时间:2014-01-20 16:11:38

标签: sql sql-server stored-procedures

我正在使用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语句也有问题吗?因为我也收到一个错误,说'='附近的语法不正确。

4 个答案:

答案 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语句。这是一种糟糕的编码实践,会导致安全性和可维护性问题。我会建议你将代码移到商店程序。