所以我有两种形式。一个是含有交付,其中数据被从数据库加载的列表框的主要形式。另一种形式是,当用户选择从列表框中的输送,其细节应该得到显示在递送形式的递送形式。到目前为止,我已经成功地加载数据,并设法让我deliveryform显示一些文字。但是,我不能让我的deliveryform显示从列表框中选择递送的数据。
这里有一点我的代码:
private void FrmDelivery_Load(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\visits.mdf;Integrated Security=True;User Instance=True");
con.Open();
SqlCommand cmd = new SqlCommand("SELECT CustomerName, CustomerAddress, ArrivalTime FROM tblVisits", con);
SqlDataReader sdr = cmd.ExecuteReader();
while (sdr.Read())
{
this.txtCustomerName.Text = sdr["CustomerName"].ToString();
this.txtCustomerAddress.Text = sdr["CustomerAddress"].ToString();
this.txtArrivalTime.Text = sdr["ArrivalTime"].ToString();
}
sdr.Close();
if (theDelivery != null)
{
txtCustomerName.Text = theDelivery.customerName;
txtCustomerAddress.Text = theDelivery.customerAddress;
txtArrivalTime.Text = theDelivery.arrivalTime;
}
}
我会用这种方式:
public string Get_Field(SqlConnection con, string Table,string Field,string where)
{
DataSet RS_Temp = new DataSet();
SqlDataAdapter DA;
string SqlStr = "SELECT " & Field & " FROM " & Table;
//Add an "If statment" if there is a where condition....
DA = new OleDbDataAdapter(SqlStr, con);
DA.Fill(RS_Temp, Table_Name);
if (RS_Temp.Tables[Table_Name].Rows.Count == 0)
{
return ("");
}
if (System.Convert.IsDBNull(RS_Temp.Tables[Table_Name].Rows[0][0]))
{
return ("");
}
if (RS_Temp.Tables[Table_Name].Rows.Count != 0)
{
return (RS_Temp.Tables[Table_Name].Rows[0][0].ToString());
}
return ("");
}
不要忘记添加,当然尝试和捕捉,那么:
YOURTEXTBOX.Text = Get_Field(...)