update-sql-Datenbank von datagridview
Ich habe ein C# prog wo ich eine Schaltfläche(Namen einfügen) und ein datagridview. Ich habe Eingangs die cmd, wo, wenn ich geben Sie einen neuen Wert in dvg-neue Zeile dann nach einem Klick auf die Schaltfläche "einfügen" eine msg-box angezeigt Darstellung der Werte i hv eingegeben..jetzt möchte ich einen 2. button update..so dat wenn ich drauf klicke nach dem einfügen der neuen Werte den neuen Werten aktualisiert in meiner sql-Datenbank.
Hier ist das snipet meinem code-
private void button1_Click_1(object sender, EventArgs e)
{
//InsertInfo();
foreach (int rowIndex in lstNewRows)
{
MessageBox.Show(dataGridView1.Rows[rowIndex].Cells[0].Value + "; " +
dataGridView1.Rows[rowIndex].Cells[1].Value);
}
lstNewRows.Clear();
}
private void dataGridView1_DefaultValuesNeeded_1(object sender, DataGridViewRowEventArgs e)
{
lstNewRows.Add(e.Row.Index);
}
private void updateInfo()
{
String strConnection = "Data Source=HP\\SQLEXPRESS;database=MK;Integrated Security=true";
SqlConnection con = new SqlConnection(strConnection);
using (SqlConnection sqlConn = new SqlConnection(strConnection))
{
using (SqlCommand cmd = new SqlCommand())
{
int rowIndex;
cmd.CommandText = @"UPDATE tble SET " +
"name = @name, " +
"number = @number" = (int)dataGridView1.SelectedCells[0].Value + " ";
cmd.Parameters.Add("@name", SqlDbType.VarChar, 50, "name");
cmd.Parameters.Add("@number", SqlDbType.VarChar, 50, "number");
cmd.Connection = sqlConn;
using (SqlDataAdapter da = new SqlDataAdapter())
{
DataTable dtRecord = new DataTable();
da.UpdateCommand = cmd;
da.Update(dtRecord);
}
}
}
}
private void button2_Click(object sender, EventArgs e)
{
updateInfo();
}
}
}
- Und was ist Ihre Frage hier..?
- warum sind Sie die übergabe von Parametern, wie dies
cmd.Parameters.Add("@name", SqlDbType.VarChar, 50, "name"); cmd.Parameters.Add("@number", SqlDbType.VarChar, 50, "number");
Ändern Sie den Befehl cmd ein.Parametercmd.Parameters.AddWithValue(@number, numberValue)
tun das gleiche für die Namen der Parameter für den Anfang
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nehme ich an, dass Sie Probleme mit dem aktualisieren von Werten der Zeile. Ihre
updateInfo();
ist falsch in vielen Orten, das ist die richtige version:Änderte ich Ihre Kommando-string für eine, die funktioniert. Auch in deinem ursprünglichen code hast du nicht abrufen, die id der Zeile zu aktualisieren, so fügte ich ein markup für das, was Sie ändern sollten, für die richtige (variable
id
).Hoffe, das hilft 🙂
using (SqlCommand cmd = new SqlCommand(sqlConn))
dieser:using (SqlCommand cmd = new SqlCommand())
und fügte auch diese Zeilecmd.Connection = sqlConn;