SQLConnection переносит данные в TextBox - PullRequest
0 голосов
/ 29 мая 2018

Я знаю, что это выглядит действительно просто, но я часами искал ответ без удачи.

Я хочу заполнить значения строк в кучу текстовых полей.Как я могу указать, что [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 голосов
/ 29 мая 2018

Я порекомендую некоторые изменения в вашем коде:

  1. Ваш sql-запрос возвращает результат из одного набора, поэтому вы можете использовать DataTabe вместо DataSet.
  2. Длязаполнить результаты из базы данных в DataTable, вы можете использовать SqlAdapter.Fill() метод .
  3. Использовать Field() универсальный метод (подробнее примеры Field()) чтобы получить значения из ваших DataTable.
  4. Используйте блоки using для одноразовых предметов или, по крайней мере, убедитесь, что вы закрыли их после.
  5. Нетнеобходимость con.Open() открыть соединение при использовании метода Fill(), поскольку из MSDN:

Метод Fill неявно открывает соединение, которое использует DataAdapter, если обнаруживает, что соединениееще не открыт.Если 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");
    }
}

Пожалуйста, не стесняйтесь комментировать, если я что-то пропустил.

0 голосов
/ 29 мая 2018
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();
...