【问题标题】:I want to change the bool value on a database我想更改数据库上的布尔值
【发布时间】:2015-03-30 02:47:55
【问题描述】:

我正在创建一个记录房间是否打开的系统。数据库不会更新。当我创建数据库时,每个房间都设置为打开。 (意味着在某个时间(行)某个房间(列)有一个布尔值,它决定它是否打开。)这里是代码:

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();
            }
        }

【问题讨论】:

  • 您收到的错误是什么?
  • 这是 Java 吗?适当标记您的问题
  • 表架构?您正在尝试将那里的变量设置为另一个变量。这不会更新您的表格
  • 但是如果时间也是参数,我如何更新某个时间
  • 设置字段 = value[, field2 = value2, ... ] 等

标签: c# mysql database


【解决方案1】:

问题出在这一行:

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

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

考虑写这个:

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

open 是您要更新的列。

如果不知道表的结构,就很难说别的。

【讨论】:

  • 我的表有一个主键@roomcode,其中列的名称类似于时间阶段,例如“A700800M”,表示星期一的 7 点到 8 点。这些时间段当然是用户生成的,因为程序让用户查看当时房间是否打开,然后更新用户是否想在那个时候使用那个房间
猜你喜欢
  • 2014-06-03
  • 2015-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-21
  • 2014-01-06
  • 2012-10-22
相关资源
最近更新 更多