错误 - 没有给出一个或多个必需参数的值

时间:2013-05-09 18:17:40

标签: c# oledb

我在处理项目时遇到了问题。

我正在尝试从Excel文件中读取数据。当我尝试选择大于Col1Value的行时它工作正常但是在我添加AND Gender = " + gender;之后它给了我错误“没有为一个或多个必需的参数赋予值”我无法设置特定的性别列因为它在每个excel文件上都不同,尽管列名相同并且在我尝试填充DataSet时出现错误。

if (boxGender.Text != "")

string gender = boxGender.Text;
string col1Name = lbl1stColumn.Text;


string Query = "select * from [data$] where " + 
               col1Name + " > " + Col1Value + 
               " AND Gender = " + gender;                                                
OleDbDataAdapter dacol1 = new OleDbDataAdapter(Query, con);                        
    Column1Data.Clear();
    dacol1.Fill(Column1Data)
    lblStuCount1Col.Text = Column1Data.Tables[0].Rows.Count.ToString();

2 个答案:

答案 0 :(得分:1)

您需要将字符串值括在单引号中,将列名括在方括号中:

string Query = "select * from [data$] where [" + 
               col1Name + "] > " + Col1Value + 
               " AND Gender = '" + gender + "'"; 

答案 1 :(得分:0)

我认为您的SQL查询中可能缺少引号:

string Query = "select * from [data$] where " + col1Name + " > '" + Col1Value + "' AND Gender = '" + gender +"'";

注意添加单引号(')符号。