Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# OleDbAdapter无法识别查询中的“@”_C#_Oledb - Fatal编程技术网

C# OleDbAdapter无法识别查询中的“@”

C# OleDbAdapter无法识别查询中的“@”,c#,oledb,C#,Oledb,以下代码用于将excel中的数据读取到gridview中 String cusid1 = maskedTextBox1.Text.ToString(); string s = "provider=Microsoft.Jet.OLEDB.4.0;data source=c:xxx.xls;Extended Properties=Excel 8.0;"; OleDbConnection con = new OleDbConnection(s); // connection string con.Op

以下代码用于将excel中的数据读取到gridview中

String cusid1 = maskedTextBox1.Text.ToString();
string s = "provider=Microsoft.Jet.OLEDB.4.0;data source=c:xxx.xls;Extended Properties=Excel 8.0;";
OleDbConnection con = new OleDbConnection(s); // connection string
con.Open();
string strQuery = "select * from [test$] where cusid = @cusid1";
OleDbDataAdapter da = new OleDbDataAdapter(strQuery, con);

//Or Use OleDbCommand
DataSet ds = new DataSet();
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];

conn.Open();
但是当指定一个数字来代替@cusid1时,比如从[test$]中选择*,其中cusid=1,我得到了正确的输出。如果在查询中使用@cusid,则会出现以下错误:

没有为一个或多个必需参数提供值


您应该传入参数。此外,命名参数在OLEDB中不起任何作用。他们被忽视了。使用相反

:

OLE DB.NET提供程序不支持将参数传递给SQL语句的命名参数

您需要的代码:

 string strQuery = "select * from [test$] where cusid = ?";

 OleDbCommand command = new OleDbCommand(sqlQuery, conn);
 command.Parameters.AddWithValue("?", cusid);

 da.SelectCommand = command;

您没有将@cusid1参数添加到命令中,您希望在何处设置@cusid1的值