行/列不存在数据,但存在于sql ce中

时间:2012-10-04 10:19:32

标签: c#

在使用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版本。我正在使用请指导我如何解决此问题。

2 个答案:

答案 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); 
  //...
}