在使用C#在ASP.NET中执行以下代码时,我收到的异常如“行/列没有数据。”
private void updateGrnItemDetails(object sender, EventArgs e)
{
txtItemNameGrnUpdate.Enabled = true;
txtItemCostGrnUpdate.Enabled = true;
txtItemColorGrnUpdate.Enabled = true;
String s = cmbGrnUpdateItemCode.SelectedItem.ToString();
MessageBox.Show(s);
sqlQuery2 = @"SELECT * FROM item WHERE (itemType ='"+cmbGrnUpdateItemType.SelectedText+"')";
comm = new SqlCeCommand(sqlQuery2, con_data);
try
{
con_data.Open();
dr = comm.ExecuteReader();
MessageBox.Show(dr.GetString(0));
while (dr.Read())//reading data from rows
{
txtItemNameGrnUpdate.Text += dr["itemName"].ToString();
txtItemColorGrnUpdate.Text += dr["itemColor"].ToString();
txtItemCostGrnUpdate.Text += dr["itemCost"].ToString();
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con_data.Close();
}
}
我正在使用Visual Studio 2010和Sql Compact版本。我正在使用请指导我如何解决此问题。
答案 0 :(得分:0)
您可以替换* with columns name
sqlQuery2 = "SELECT itemCost, itemName, itemColor FROM item WHERE (itemType ='"+cmbGrnUpdateItemType.SelectedText+"')";
我建议您使用
sqlQuery2 = "SELECT itemCost, itemName, itemColor FROM item WHERE itemType = @ParameterName";
comm .Parameters.AddWithValue("@ParameterName", cmbGrnUpdateItemType.SelectedText);
答案 1 :(得分:0)
在执行GetString()
之前,您缺少Read调用while(dr.Read())
{
String res = dr.GetString(0);
//...
}