-1

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 エディションを使用しています。これを解決する方法を教えてください。

4

2 に答える 2

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);
于 2012-10-04T10:23:50.367 に答える
0

GetString() を実行する前に、Read 呼び出しがありません

while(dr.Read())
{
  String res = dr.GetString(0); 
  //...
}
于 2012-10-04T10:24:58.727 に答える