[英]Insert database data into listbox C#
免責聲明:我以前沒有從c#代碼查詢數據庫的經驗(所以對我來說很容易)
我試圖將我的SQL Server數據庫中的數據插入到我的列表框中。 現在我以數組的形式嘗試這個。 我首先連接到數據庫,然后將數據庫中的“狀態”插入到數組的索引中。 我希望將所有50個狀態放入我的數組中,然后將此信息放入我的列表框中。 現在,我的數據正在插入,但當我在列表框中查看它時,它顯示了System.Data.SqlClient.SqlCommand
。
public string connString = "Not displaying this for security reasons, it is set up correctly though."; //Setting up the connection to my DB
public frmState()
{
InitializeComponent();
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.frmState_FormClosed);
using (SqlConnection dbConn = new SqlConnection(connString))
{
dbConn.Open();
string cmdString = "select State_Name from [State]";
SqlCommand cmd = new SqlCommand(cmdString, dbConn);
SqlDataReader reader = cmd.ExecuteReader();
try
{
while (reader.Read())
{
string[] stateList = new string[50];
for (int i = 1; i <= 50; i++)
{
stateList[i - 1] = cmd.ToString();
}
for (int i = 0; i < stateList.Length; i++)
{
lbStates.Items.Add(stateList[i].ToString());
}
}
}
finally
{
reader.Close();
}
}
}
此外,我知道現在我將展示相同的狀態50次。 我試圖弄清楚如何一次插入一個狀態。 這是一種有效的方法嗎? 另外,有關在c#中使用數據庫的任何提示嗎? 我在Visual Studio 2017和Microsoft SQL Server 2016上。
問題來自你所做的:
stateList[i - 1] = cmd.ToString();
這是錯誤的,因為您正在將SqlCommand對象轉換為字符串並將其放入字符串類型的數組中以從SqlCommand中檢索數據。
如下更改以上行將解決您的問題:
tateList[i - 1] = reader.GetString(0);
有關在c#中使用數據庫的任何提示?
對於初學者使用C#和SQL,我建議你繼續學習ADO.net的基本數據庫訪問工具,比如使用SqlDataReader,SqlDataReader,SqlDataAdapter,.... 但要擁有專業,當然還有安全應用,女巫也需要簡單; 你必須轉向使用ORM工具(安全地訪問數據庫),例如“實體框架”,linq,...女巫會更方便地與數據庫交談。
補充:
我建議你閱讀本教程,了解如何使用SqlDataReader。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.