我想更改数据库上的bool值

时间:2015-03-30 02:47:56

标签: c# mysql database

即时创建一个记录房间是否开放的系统。数据库不会更新。我创建数据库时,每个房间都设置为打开。 (表示在某个时间(行)某个房间(列)有一个bool值,用于确定它是否打开。)这里是代码:

public void updateDatabase(int starttimestamp,int endtimestamp, string roomcode,string day,bool value)
        {
            string[] timeparam = new string[2];
            timeparam = configureTime(starttimestamp, endtimestamp, day);
            string param;
            param = convertInput(timeparam[0], timeparam[1], day);
            //dbc.executeSQLCommand("Update RoomTable set " + param + " = " + value+ " where (RoomCode = '"+ roomcode + "' )");
            string sqlcmd = "Update Roomtable set @param = @value where (Roomcode  = @roomcode)";
            using(SqlConnection sqlconnection = new SqlConnection(constr))
            using (SqlCommand cmd = new SqlCommand(sqlcmd, sqlconnection))
            {
                sqlconnection.Open();
                cmd.Parameters.Add("param", SqlDbType.NChar).Value = param;
                cmd.Parameters.AddWithValue("value",value);
                cmd.Parameters.Add("roomcode", SqlDbType.NChar).Value = roomcode;
                cmd.ExecuteNonQuery();
                sqlconnection.Close();
            }
        }

1 个答案:

答案 0 :(得分:0)

问题出在这一行:

string sqlcmd = "Update Roomtable set @param = @value where (Roomcode  = @roomcode)";

您尝试更新的@param不是列名,而是用户变量。

考虑写下这个:

string sqlcmd = "Update Roomtable set open = @value where (Roomcode  = @roomcode)";

其中open是您要更新的列。

如果不了解桌子的结构,很难说出其他任何内容。