DataAdapter.Fill(),错误出现为“”;';附近的语法不正确)'&”;

本文关键字:不正确 语法 Fill 错误 DataAdapter | 更新日期: 2023-09-27 17:58:43

在ASP.Net&C#:数据库位于我的本地计算机中。

string connectionString = @"Data Source=CCS90; Initial Catalog=Ribo; Trusted_Connection=True;";
SqlConnection myConn = new SqlConnection(connectionString);
myConn.Open();       
SqlCommand sqlCommand = new SqlCommand("SELECT * FROM PUR_POHEADER WHERE POID = @POID", myConn);
sqlCommand.Parameters.Add("@POID", SqlDbType.Int);
sqlCommand.Parameters["@POID"].Value = Convert.ToInt32(request.ReferenceNo);
DataSet DS = new DataSet();
SqlDataAdapter AD = new SqlDataAdapter(sqlCommand, myConn);
//AD.Fill(DS);
AD.Fill(DS, "POTABLE");   //Error arise at this place
DataTable DT = DS.Tables[0];
myConn.Close();

当编译器到达行AD.Fill(DS, "POTABLE");时,错误发生在Incorrect syntax near ')。原因可能是什么?

DataAdapter.Fill(),错误出现为“”;';附近的语法不正确)'&”;

您用SELECT语句创建了一个SqlCommand,然后不使用它。什么是insertStatement?当然你应该使用sqlCommand

您可以尝试

AD.Fill(DS);

而不是

AD.Fill(DS,"PORTABLE");

也可以尝试:

SqlDataAdapter AD = new SqlDataAdapter(sqlCommand);

而不是

SqlDataAdapter AD = new SqlDataAdapter(insertStatement, myConn);

问题就在这里:

SqlDataAdapter AD = new SqlDataAdapter(insertStatement, myConn);

替换为:

SqlDataAdapter AD = new SqlDataAdapter(sqlCommand);

而且你也在使用这个过载,我认为:

AD.Fill(DS, "NameOfDataTable");

然后你可以这样访问它:

DataTable DT = DS.Tables["NameOfDataTable"];

使用0索引的不确定性。