尝试更新记录不知道为什么我会收到错误 异常详细信息:System.Data.OleDb.OleDbException:没有为一个或多个必需参数指定值。
这是我的代码请指导我。
public static string lasttable;
public static string newtable;
newtable = "c" + cont.ToString();
lasttable = input;
string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\AGENTJ.AGENTJ-PC\Documents\Visual Studio 2010\WebSites\mfaridalam\App_Data\mfaridalam1.accdb; Persist Security Info=False;";
OleDbConnection conn = new OleDbConnection(connectionString);
conn.Open();
string query = "UPDATE [LastInfo] SET [LastAlbum]=@newtable WHERE [LastAlbum]=@lasttable";
OleDbCommand comd = new OleDbCommand();
comd.Parameters.Add("@LastAlbum", OleDbType.VarChar);
comd.Parameters["@LastAlbum"].Value = newtable;
comd.CommandText = query;
comd.Connection = conn;
comd.ExecuteNonQuery();
conn.Close();
答案 0 :(得分:1)
您正在使用OleDb而OleDb并不关心参数名称
但是,您需要为命令文本中存在的每个占位符添加一个参数,其顺序与它们出现的顺序相同
你有两个参数(@newtable
和@lasttable
),但你只添加了一个参数(而且你的名字错误,但正如我所说,这对OleDb来说无关紧要)。
您需要添加第二个参数@lasttable
string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\AGENTJ.AGENTJ-PC\Documents\Visual Studio 2010\WebSites\mfaridalam\App_Data\mfaridalam1.accdb; Persist Security Info=False;";
using(OleDbConnection conn = new OleDbConnection(connectionString))
{
conn.Open();
string query = "UPDATE [LastInfo] SET [LastAlbum]=@newtable WHERE [LastAlbum]=@lasttable";
OleDbCommand comd = new OleDbCommand();
comd.Parameters.Add("@newTable", OleDbType.VarChar);
comd.Parameters["@newTable"].Value = newtable;
comd.Parameters.Add("@lastTable", OleDbType.VarChar);
comd.Parameters["@lastTable"].Value = lasttable;
comd.CommandText = query;
comd.Connection = conn;
comd.ExecuteNonQuery();
}