Использовать базу данных в C # - PullRequest
0 голосов
/ 21 мая 2011

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

Я создал DB1.MDF и получил от него данные.

Когда я пытаюсь сделать Select из своей таблицы (то есть Table1), он получает ошибку времени выполнения!

Как мне это сделать?!

Еще один вопрос:

Я создал Data Grid View и поместил в него данные. Теперь, как я могу, например, использовать столбец [2] этого (например, столбец [2] в моем dataGridView - LastName, и я хочу сохранить все LastNames в одной строке).

Вот мой код:

private void button1_Click(object sender, EventArgs e)
{

     SqlConnection conn = new SqlConnection();

     conn.ConnectionString = @"Data Source=.\SQLEXPRESS;
           AttachDbFilename=|DataDirectory|\DB1.mdf;
           Integrated Security=True;User Instance=True";

     conn.Open();

     SqlCommand cmd = new SqlCommand();

     cmd.Connection = conn;

     cmd.CommandText = "SELECT ID, Name, LastName from Table1 WHERE Name == Joe ";

     SqlDataAdapter da = new SqlDataAdapter();

     da.SelectCommand = cmd;

     DataTable dt = new DataTable();
     da.Fill(dt);

     dataGridView1.DataSource = dt;
     conn.Close();
 }

 private void button2_Click(object sender, EventArgs e)
 {
   textBox1.Text = dataGridView1.Columns[0].ToString();
 } 

Ответы [ 3 ]

3 голосов
/ 21 мая 2011

Запрос на выборку должен быть таким

cmd.CommandText = "SELECT ID, Name, LastName from Table1 WHERE Name = 'Joe'";

А для второго вопроса вы можете использовать что-то вроде этого

private void button2_Click(object sender, EventArgs e)
{
     StringBuilder builder = new StringBuilder();
     dataGirdView1.Rows.Cast<DataGridViewRow>().ToList()
         .ForEach(r => builder.Append(r.Cells[2].Value));
     textBox1.Text = builder.ToString();
}
0 голосов
/ 21 мая 2011

В Bala R все правильно, оператор == не существует в SQL, поэтому, если вы проверяете равенство, вы должны использовать оператор single =.И если вы сравниваете строки (varchar или nvarchar в SQL), вы должны поместить их в одинарные кавычки, например, 'Joe'.

0 голосов
/ 21 мая 2011

Этот запрос кажется неправильным.

SELECT ID, Name, LastName from Table1 WHERE Name == Joe 

Можете ли вы попробовать это?

cmd.CommandText = "SELECT ID, Name, LastName from Table1 WHERE Name = 'Joe'"

Также, пожалуйста, опишите детали сообщения об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...