C# 如何将SQL Server数据库中的数据放入文本框?

C# 如何将SQL Server数据库中的数据放入文本框?,c#,sql-server,C#,Sql Server,我遗漏了一些非常简单的东西。我有一个带有5textBox的表单,希望用SQL Server数据库中的数据填充它们。以下是我到目前为止的情况: 当我逐行调试此代码时,它将返回到connection.open()行的调用块 public void Get_Contact_Info() { using (DataAccessClass.sql_Connection) { string SQL = "SELECT * FROM Customer_Contacts WHER

我遗漏了一些非常简单的东西。我有一个带有5
textBox
的表单,希望用SQL Server数据库中的数据填充它们。以下是我到目前为止的情况:

当我逐行调试此代码时,它将返回到
connection.open()
行的调用块

public void Get_Contact_Info()
{
    using (DataAccessClass.sql_Connection)
    {
        string SQL = "SELECT * FROM Customer_Contacts WHERE Contact_ID = @contact_Id";
        SqlCommand sqlCommand = new SqlCommand(SQL, DataAccessClass.sql_Connection);

        sqlCommand.Parameters.AddWithValue("@Contact_Id", contact_Id);
        sqlCommand.Parameters.AddWithValue("@Contact_Direct_Number", contact_Direct_NumberTextBox);
        sqlCommand.Parameters.AddWithValue("@Contact_Cell_Number", contact_Cell_NumberTextBox);
        sqlCommand.Parameters.AddWithValue("@Contact_Email", contact_EmailTextBox);
        sqlCommand.Parameters.AddWithValue("@Contact_Department", contact_DepartmentTextBox);

        DataAccessClass.sql_Connection.Open();

        using (SqlDataReader sqlDataReader = sqlCommand.ExecuteReader())
        {
            while (sqlDataReader.Read())
            {
                contact_Id = sqlDataReader["Contact_ID"].ToString();
            }
        DataAccessClass.sql_Connection.Close();
        }
    }
}
我从用户那里获取信息并将其保存到SQL Server
DataTable
中的工作做得很好,但我知道我想获取一些信息,以便编辑信息

任何帮助都将不胜感激

这是我的
DataAccessClass

public static class DataAccessClass
    {
        static SqlConnection sqlConnection = new SqlConnection();

        public static SqlConnection sql_Connection
        {
            get { return sqlConnection; }
        }

        public static void OpenConnection()
        {
            string sqlString = Properties.Settings.Default.ConnectionString;
            sqlConnection.ConnectionString = sqlString;
            sqlConnection.Open();
        }

        public static void CloseConnection()
        {
            sqlConnection.Close();
        }
    }
下面是我打电话的方式
Get\u Contact\u Info

    private void Customer_Add_Contact_Form_Load(object sender, EventArgs e)
    {
        this.customer_ContactsBindingSource.AddNew();
        if (contact_Id == null)
        {
            contact_NameTextBox.Select();
        }
        else
        {
            Get_Contact_Info();
        }
    }
DataGridView
中,我选择一行并将客户ID传递给客户添加联系人表单,以便编辑联系人信息。以下是此步骤的代码:

DataGridViewRow row = customer_ContactsDataGridView.CurrentCell.OwningRow;
string contact_ID = row.Cells[0].Value.ToString();
string customer_Ship_ID = null;

using (Form Customer_Add_Contact_Form = new Customer_Add_Contact_Form(customer_Ship_ID, contact_ID))
如前所述,最好让连接池管理连接,这样您就可以将代码简化为:

public void Get_Contact_Info()
{
    using (var connection = new SqlConnection(roperties.Settings.Default.ConnectionString))
    {
        connection.Open();

        var SQL = "SELECT * FROM Customer_Contacts WHERE Contact_ID = @contact_Id";

        var sqlCommand = new SqlCommand(SQL, connection);
        sqlCommand.Parameters.AddWithValue("@Contact_Id", contact_Id);

        using (var sqlDataReader = sqlCommand.ExecuteReader())
        {
            while (sqlDataReader.Read())
            {
                contact_Id = sqlDataReader["Contact_ID"].ToString();

                TextBoxName.Text = sqlDataReader["Contact_Name"].ToString();
                //etc ...
            }
        }
    }
}

我已删除了未使用的参数并创建了一个新连接。可能您试图使用
.open()
打开连接,但未使用连接字符串初始化连接(是否为
属性
?)

能否显示
DataAccessClass.sql\u连接
是如何声明和创建的?我已经添加了连接类。您应该签出并停止使用
.AddWithValue()
-它可能会导致意想不到的结果…@Grantwiney:我的代码在循环时从不进入
。当它点击
连接。打开
行时,它返回到
客户添加联系加载
块,并给我一个带有4个空白控件的表单。@GrantWiney:它是从
表单加载调用的,我会将它添加到原始帖子中。我按照你的建议运行我的连接,但读了一篇让我信服的帖子好多了。我可以很容易地切换回去。我的连接字符串实际上是
属性
。我将尝试此代码,并让您知道我在哪里结束。只要我点击connection.open行,它就会直接进入
表单,它是空的,因为
数据读取器被跳过,我不知道为什么。