簡體   English   中英

將數據庫數據插入列表框C#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM