[英]Unable to retrieve data from list in C#
我正在使用C#.Net和MSSQL服務器設計WinForms桌面應用程序。 在下面的類中,我讀取了使用sqlDataReader
從存儲過程中讀取數據,並將其插入List<>
。
后來我想在textboxes
顯示列表值。 我的問題是,當我從列表中檢索數據時,texbox中沒有顯示任何內容。
我的存儲過程:
create proc spDispMaterialPrice
@materialName nvarchar(100)
as
begin
select unitPrice,carbohydrate,protein,fat,humidity,minerals from materialPrice where
materialName = @materialName
end
類:
//display data retrived according to material combobox to user when form loads
public List<string> displayMaterial()
{
List<string> materialList = new List<string>();
string conString = ConfigurationManager.ConnectionStrings["secaloFormulaCS"].ToString();
using (SqlConnection sqlCon = new SqlConnection(conString))
using (SqlCommand sqlCmd = new SqlCommand("spDispMaterialPrice", sqlCon))
{
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCon.Open();
sqlCmd.Parameters.AddWithValue("materialName", MaterialName);
SqlDataReader sqlDr = sqlCmd.ExecuteReader();
while (sqlDr.Read())
{
materialList[0] = sqlDr["unitPrice"].ToString();
materialList[1] = sqlDr["carbohydrate"].ToString();
materialList[2] = sqlDr["protein"].ToString();
materialList[3] = sqlDr["fat"].ToString();
materialList[4] = sqlDr["humidity"].ToString();
materialList[5] = sqlDr["minerals"].ToString();
}
sqlCon.Close();
sqlCon.Dispose();
}
return materialList;
}
}
}
winform:
private void AppForm_Load(object sender, EventArgs e)
{
this.materialPriceTableAdapter.Fill(this.secaloFormulaDataSet.materialPrice );
//panel1.Hide();
Classes.Prices prices = new Classes.Prices(comboBox1.SelectedItem.ToString());
List<string> items = prices.displayMaterial();
textBox3.Text = items[0];
您正在使用List,就好像它是一個數組。 如果從表中選擇了一條記錄,則無需通過以下更改更改大部分代碼,否則它將顯示與材料名稱匹配的最后一條記錄。
public string[] displayMaterial()
{
var materialList = new string[6];
在你的AppForm_Load中
string[] items = prices.displayMaterial();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.