【发布时间】:2017-09-24 20:24:26
【问题描述】:
下面是我得到的代码
必须声明标量变量@connection
错误。我不知道我哪里错了。请指导
protected void LinkButton1_Click(object sender, EventArgs e)
{
string connection = Drpconn.SelectedItem.Text;
using (OdbcConnection con = new OdbcConnection("DSN=Sqltesting;UID=user1;PWD=test@123;Integrated Security=no;"))
{
using (OdbcCommand cmd = new OdbcCommand("INSERT INTO TblConfigure(Connection,Server,DbName,UserID,Password,Connection_Name,Port,Service_ID) VALUES (@Connection, @Server , @DbName,@UserID,@Password,@ConnectionName,@Port,@ServiceID)", con))
{
con.Open();
cmd.Parameters.AddWithValue("@Connection", connection);
cmd.Parameters.AddWithValue("@Server", TxtServer.Text);
cmd.Parameters.AddWithValue("@DbName", DrpDbName.SelectedItem.Text);
cmd.Parameters.AddWithValue("@UserID", TxtUsr.Text);
cmd.Parameters.AddWithValue("@Password", TxtPass.Text);
cmd.Parameters.AddWithValue("@ConnectionName", Txtconnname.Text);
cmd.Parameters.AddWithValue("@Port", TxtPort.Text);
cmd.Parameters.AddWithValue("@ServiceID", TxtService.Text);
cmd.ExecuteNonQuery();
}
} // closes the connection
Response.Redirect("LoginPL.aspx");
}
【问题讨论】:
-
将您的命令文本重写为 INSERT INTO (.....) VALUES(?,?,?,?,?,?,?,?) Odbc 不会支持命名参数
-
在这里阅读文档:msdn.microsoft.com/en-us/library/…,它应该使用占位符“?”而不是使用名称参数。
-
不是你的问题的原因,但你应该stop using AddWithValue