I Bind данных к DataGridView, используя следующий кодDataGridView колонок Index Возврат 0 после обновления
private void BindGrid()
{
try
{
string constr = "Data Source=INSPIRE-1;" +
"Initial Catalog=testdatabase;" +
"User id=testuser;" +
"Password=tester;";
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("SELECT * FROM mytable", con))
{
cmd.CommandType = CommandType.Text;
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
dataGridView1.DataSource = dt;
}
}
}
}
if (flag == false)
{
flag = true;
DataGridViewButtonColumn uninstallButtonColumn = new DataGridViewButtonColumn();
uninstallButtonColumn.Name = "Edit";
uninstallButtonColumn.Text = "Edit";
dataGridView1.Columns.Insert(4, uninstallButtonColumn);
}
}
catch (Exception error)
{
MessageBox.Show(error.Message);
}
}
I Обновление выбранной записи путем подключения к событию нажатия кнопки в DataGridView строке, как этот
void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex ==4)
{
button4.Enabled = false;
try
{
orderId = (string)dataGridView1.SelectedCells[0].OwningRow.Cells[0].Value;
using (SqlConnection conn = new SqlConnection(constr))
{
try
{
conn.Open();
SqlDataReader myReader = null;
string commandText = "select * from mytable where name= @name";
SqlCommand command = new SqlCommand(commandText, conn);
command.Parameters.AddWithValue("@name", orderId);
myReader = command.ExecuteReader();
while (myReader.Read())
{
textBox1.Text = myReader["name"].ToString();
textBox2.Text = myReader["age"].ToString();
textBox3.Text = myReader["phone"].ToString();
textBox4.Text = myReader["address"].ToString();
}
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
}
catch (Exception error)
{
}
}
}
Теперь я обновить значения, используя код ниже
private void button5_Click(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection(constr))
{
conn.Open();
using (SqlCommand cmd =
new SqlCommand("UPDATE mytable SET [email protected],[email protected],[email protected],[email protected]" +
" WHERE [email protected]", conn))
{
cmd.Parameters.AddWithValue("@NewName", textBox1.Text);
cmd.Parameters.AddWithValue("@NewAge", textBox2.Text);
cmd.Parameters.AddWithValue("@NewPhone", textBox3.Text);
cmd.Parameters.AddWithValue("@NewAddress", textBox4.Text);
cmd.Parameters.AddWithValue("@oldname", orderId);
try
{
int rows = cmd.ExecuteNonQuery();
MessageBox.Show("Updated Successfully");
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
}
}
}
BindGrid();
textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
button4.Enabled=true;
}
Но после того, как я нажимаю U pdate, затем щелкните по столбцу Button, соответствующему строке e.ColumnIndex
, всегда возвращает 0.
Что я делаю неправильно?
UPDATE:
Пожалуйста, смотрите скриншот
Каково место/положение 'Button' в вашем' DataGridView'? –
@RahulHendawe Его в первом фрагменте кода 'dataGridView1.Columns.Insert (4, uninstallButtonColumn);' .Пожалуйста, проверьте. – techno
Извините, не заметил этого, проверьте ниже ответ! –