//Creating Data Reader Components
string str_ClientID;
string str_Occupation;
string strCompany;
public void Read_Out_Clients(string company)
{
//Specify the parameter search criteria
sqlComLoad.Parameters["@company"].Value = company;
sqlCon.Open(); // open database connection
// create database reader to read information from database
SqlDataReader objReader = sqlComLoad.ExecuteReader();
// retrieve
// information from database
//<--This Errors saying there is not data in the data base
//Suppose to return the ClientID field data All field names are correct
str_ClientID = Convert.ToString(objReader["ClientID"]);
//suppose to return the Occupation field data
str_Occupation = Convert.ToString(objReader["Occupation"]);
objReader.Close(); // close data reader connection
sqlCon.Close(); // close database connection
}
//This is the returning value to the method
private void cboCompany_SelectedIndexChanged(object sender, EventArgs e)
{
strCompany = cboCompany.SelectedItem.ToString();
if(strCompany != "")
{
//Read out companys selected related fields from clients
Read_Out_Clients(strCompany);
//Add those related fields to specifics
cboClientID.Items.Add(str_ClientID); <--this is what the reader is supposed to return
txtOccupation.Text = str_Occupation;
}
}
任何帮助简化这款阅读器的帮助都会很棒!多谢你们 此代码用于读取数据字段公司与查询搜索匹配的数据字段 标准 它适用于Access数据库,但由于某种原因它不能使用SQL查询。它应该工作我在SQL查询执行器中测试它,它返回数据,但当我运行阅读器时,它返回应用程序级别的错误,它说:“当没有数据存在时无效的读取尝试”;但是有数据它返回SQL查询执行器中的数据所以我很困惑请帮助再次感谢。
答案 0 :(得分:2)
在使用SqlDataReader(或由DbDataReder派生的任何类实例)之前,您需要调用方法
if(objReader.Read())
{
... read the fields
}
并检查它是否返回true
只有在此之后,您的objReader
才会位于查询检索到的第一条记录上。