SQLConnection将数据带到TextBox

时间:2018-05-29 12:38:30

标签: c# sql asp.net webforms connection-string

我知道这看起来很简单,但我一直在寻找一个没有运气好几个小时的答案。

我想将行值填充到一堆文本框中。如何指定[CompanyName]文本框将使用companyName?请保持尽可能简单(初级水平)。

string customerUniqueID = "test";

string constr = ConfigurationManager.ConnectionStrings["SQLConnection"].ToString(); // connection string
SqlConnection con = new SqlConnection(constr);
con.Open();
SqlCommand com = new SqlCommand("SELECT * FROM [Customers] WHERE [UniqueID] = @UniqueID", con); // table name 
com.Parameters.Add("@UniqueID", SqlDbType.Int);
com.Parameters["@UniqueID"].Value = customerUniqueID;
SqlDataAdapter da = new SqlDataAdapter(com);
DataSet ds = new DataSet();
companyName.Text = ?????????

2 个答案:

答案 0 :(得分:1)

string customerUniqueID = "test";

string constr = ConfigurationManager.ConnectionStrings["SQLConnection"].ToString(); // connection string
SqlConnection con = new SqlConnection(constr);
con.Open();
SqlCommand com = new SqlCommand("SELECT * FROM [Customers] WHERE [UniqueID] = @UniqueID", con); // table name 
com.Parameters.Add("@UniqueID", SqlDbType.Int);
com.Parameters["@UniqueID"].Value = customerUniqueID;
SqlDataAdapter da = new SqlDataAdapter(com);
DataSet ds = new DataSet();
da.Fill(ds, "Customers");

companyName.Text = ds.Tables[0].Rows[0]["CompanyName"].ToString();

答案 1 :(得分:1)

我会建议您对代码进行一些更改:

  1. 您的SQL查询返回一组的结果,因此您可以使用DataTabe代替DataSet
  2. 要将数据库中的结果填充到DataTable,您可以使用SqlAdapter.Fill() method
  3. 使用Field()通用方法(更多examples of Field())从DataTable获取值。
  4. using块用于一次性物品,或者至少确保在之后关闭它们。
  5. 使用con.Open()方法时无需Fill()打开连接,因为来自MSDN:
  6.   

    如果发现连接尚未打开,则Fill方法隐式打开DataAdapter正在使用的Connection。如果Fill打开连接,它也将在Fill完成时关闭连接。这可以在处理单个操作(例如填充或更新)时简化代码。

    string customerUniqueID = "test";
    string constr = ConfigurationManager.ConnectionStrings["SQLConnection"].ToString(); // connection string
    using(SqlConnection con = new SqlConnection(constr))
    {
        SqlCommand com = con.CreateCommand();
        com.CommandText = "SELECT * FROM [Customers] WHERE [UniqueID] = @UniqueID";
        com.Parameters.Add("@UniqueID", SqlDbType.Int);
        com.Parameters["@UniqueID"].Value = customerUniqueID;
        using(SqlDataAdapter da = new SqlDataAdapter(com))
        {
            DataTable dt = new DataTable();
            da.Fill(dt);
            companyName.Text = dt.Rows[0].Field<string>("CompanyName");
        }
    }
    

    如果我错过了什么,请随时发表评论。