即时创建一个记录房间是否开放的系统。数据库不会更新。我创建数据库时,每个房间都设置为打开。 (表示在某个时间(行)某个房间(列)有一个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();
}
}
答案 0 :(得分:0)
问题出在这一行:
string sqlcmd = "Update Roomtable set @param = @value where (Roomcode = @roomcode)";
您尝试更新的@param
不是列名,而是用户变量。
考虑写下这个:
string sqlcmd = "Update Roomtable set open = @value where (Roomcode = @roomcode)";
其中open
是您要更新的列。
如果不了解桌子的结构,很难说出其他任何内容。