我正在尝试更新sql数据库中的一个特定值。
我一直在搜索堆栈和msdn,并使用从另一个用户那里收到的一个示例,但是我似乎仍然无法解决它,而且我的双手都在空中。
Console.WriteLine("Which time would you like to edit for group {0}?",newGroup);
string ClassTime = Console.ReadLine();
Console.WriteLine("Enter the current teacher and classroom for {0}",newGroup);
string teacherandclassroom = Console.ReadLine();
Console.WriteLine(string.Format("Enter the new teacher and classroom number for group {0} at {1} ",newGroup,ClassTime));
string newTeacherClassRoom = Console.ReadLine();
SQLCONN.Open();
using (SqlCommand cmd1 =
new SqlCommand("UPDATE mondayTable SET " + ClassTime +" =@"+ClassTime + " WHERE " + ClassTime + "@=" + teacherandclassroom, SQLCONN)) //or WHERE newGroup?
{
cmd1.Parameters.AddWithValue("@" + ClassTime, newTeacherClassRoom);
cmd1.Parameters.AddWithValue("@" + teacherandclassroom, teacherandclassroom);
cmd1.ExecuteNonQuery();
Console.WriteLine("Database Updated...");
}
Console.ReadKey();我没有收到任何错误,正因为如此,我很难调试。
这是我输入的值,如果有任何区别的话。
自上而下
09:00-09.40
ANDREWW
ANDREW 7
正在使用的桌子。
CREATE TABLE [dbo].[mondayTable] (
[SAT] VARCHAR(50) NOT NULL,
[09:00-09.40] VARCHAR (MAX) NULL,
[10:10-10:50] VARCHAR (MAX) NULL,
[11.00-11:40] VARCHAR (MAX) NULL,
[11:50-12:30] VARCHAR (MAX) NULL,
[12:40-13:20] VARCHAR (MAX) NULL,
[13:30-14:10] VARCHAR (MAX) NULL,
[14:20-15:00] VARCHAR (MAX) NULL,
[15:10-15:50] VARCHAR (MAX) NULL,
[16:00-16:40] VARCHAR (MAX) NULL,
[16:50-17:30] VARCHAR (MAX) NULL,
[17:40-18:20] VARCHAR (MAX) NULL,
[18:30-19:10] VARCHAR (MAX) NULL,
[19:20-20:00] VARCHAR (MAX) NULL,
PRIMARY KEY CLUSTERED ([SAT] ASC)
);发布于 2016-07-20 19:10:02
尝试使用括号,@位于=的错误一侧。
using (SqlCommand cmd1 = new SqlCommand("UPDATE mondayTable SET [" + ClassTime +"] = @newValue WHERE [" + ClassTime + "] = @oldValue", SQLCONN)) //or WHERE newGroup?
{
cmd1.Parameters.AddWithValue("@newValue", newTeacherClassRoom);
cmd1.Parameters.AddWithValue("@oldValue", teacherandclassroom);
cmd1.ExecuteNonQuery();
Console.WriteLine("Database Updated...");
}但是您的代码允许SQL注入..。照顾好它。
https://stackoverflow.com/questions/38488758
复制相似问题