gpt4 book ai didi

c# - C# 控制台应用程序中的 SQL 更新错误

转载 作者:搜寻专家 更新时间:2023-10-30 22:12:28 24 4
gpt4 key购买 nike

使用MS Visual Studio 2010,MS Access 2010(数据库转换为.mdb),程序基于C# Console Application。

我是 C# 新手,希望获得以下方面的帮助:

1.我遇到以下错误:

Syntax error in UPDATE statement.

我已经尝试了一切,但似乎无法找到问题所在。我什至查看了 UPDATE 语句之外的可能错误,但仍然没有运气。联机帮助似乎无法帮助我解决问题,大部分帮助都是关于与数据库服务器的连接。

for (int w = 0; w <= 9; w++)
{
string PN = names[w];
int lvl = Convert.ToInt32(level[w]), dmg = Convert.ToInt32(damage[w]), plek = w+1;
connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" + @"Data Source=C:\Users\Home\Desktop\game\game.mdb";
//Tried this one
// queryString = "UPDATE Scores SET PlayerName=\""+PN+"\", Level=\"" +lvl+"\", DamageReceived=\""+dmg+"\" WHERE Pos="+ plek;
//Ended with this one
queryString = "UPDATE Scores SET PlayerName= @pPN, Level= @plvl, DamageReceived= @pdmg WHERE Pos= @pPlek";

using (OleDbConnection connection = new OleDbConnection(connectionString))
using (OleDbCommand command = new OleDbCommand(queryString, connection))
{
try
{
command.Parameters.AddWithValue("@pPN", PN);
command.Parameters.Add("@plvl", SqlDbType.Int).Value = lvl;
command.Parameters.Add("@pdmg", SqlDbType.Int).Value = dmg;
command.Parameters.Add("@pPlek", SqlDbType.Int).Value = plek;

connection.Open();
/*command.Parameters.AddWithValue("@PN", PN);
command.Parameters.AddWithValue("@lvl", lvl);
command.Parameters.AddWithValue("@dmg", dmg);
command.Parameters.AddWithValue("@plek", plek);*/

command.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}

input = Console.ReadLine();

The Error that I'm getting

如果有任何帮助,我将不胜感激。提前致谢。

最佳答案

问题是 OleDbCommand 不支持命名参数。你必须使用问号?反而。尝试类似的东西:

UPDATE Scores SET PlayerName= ?, Level= ?, DamageReceived= ? WHERE Pos= ?

Here你会找到完整的例子。

关于c# - C# 控制台应用程序中的 SQL 更新错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23180932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com