0

我们从组合框中选择了一个值,需要文本框中的相关信息。以下代码不适用于相同的情况。

   private void itemcode_SelectedIndexChanged(object sender, EventArgs e)
   {
            string selected = (string)itemcode.SelectedItem;
            SqlConnection conn3 = new SqlConnection(connString);
            conn3.Open();
            //For Redundency Checking Code of Supplier id.
            string iname = "select Itemname from Items where Itemcode='" +  
                            itemcode.SelectedItem.ToString() + "'";
            SqlCommand cmdRedun1 = new SqlCommand(iname, conn3);
            SqlDataReader dr1 = cmdRedun1.ExecuteReader();
            dr1.Read();
            itemname.Text = dr1["Itemname"].ToString();
            dr1.Close();
    }
4

2 回答 2

1

首先检查组合框的项目值,然后使用 StringFormat 创建查询,例如:

 string iname = String.Format("select Itemname from Items where Itemcode='{0}'",
 itemcode.SelectedItem.ToString()) ;

//-- 那么请查看下面的代码:

SqlConnection SqlConn = new SqlConnection(this.ConnectionString);
SqlConn.Open();
SqlCommand SqlCmd = new SqlCommand(" Your Select....", SqlConn);
SqlCmd.CommandType = CommandType.Text;
SqlDataReader r = SqlCmd.ExecuteReader(CommandBehavior.CloseConnection);
//----need this 
while (r.Read())                
itemname.Text =  string.IsNullOrEmpty(r["Itemname"].ToString()) ?  
  string.Empty : r["Itemname"].ToString();           
 r.Close();
 if (SqlConn.State != ConnectionState.Closed)
      SqlConn.Close();
于 2013-03-25T09:15:15.777 回答
0

您可以尝试 ExecuteScalar 而不是 SqlDataReader。

于 2013-03-25T09:15:23.257 回答