Announcement

Collapse
No announcement yet.

Probleme beim Updaten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme beim Updaten

    Hallo

    Nach mehrtägiger, erfolgloser Suche wie man editierte Daten abspeichert gebe ich es nun auf und hoffe,
    dass mir eine gute Seele zeigen kann wie dies gemacht wird.

    Herzlichen Dank für jede Hilfe
    Marco

    // Suche nach Name und Vorname und Anzeige im DataGridView funktionieren einwandfrei:
    conn = new VistaDBConnection(connStr);
    sqlStr = "SELECT * FROM Patient WHERE LastName like @LastName AND FirstName like @FirstName";
    da = new VistaDBDataAdapter();

    ds = new DataSet();
    da.SelectCommand = new VistaDBCommand(sqlStr, conn);
    da.SelectCommand.Connection.ConnectionString = connStr;
    da.SelectCommand.Parameters.Add("@LastName", VistaDBType.Character).Value = (textBoxSearchLastName.Text) + "%";
    da.SelectCommand.Parameters.Add("@FirstName", VistaDBType.Character).Value = (textBoxSearchFirstName.Text) + "%";
    dt = new DataTable("Patient");
    conn.Open();
    da.Fill(ds, "Patient");
    conn.Close();
    dt = ds.Tables["Patient"];
    dv = ds.DefaultViewManager.CreateDataView(dt);
    dv.Sort = "LastName";
    SearchPatientdataGridView.DataSource = dv;

    pdLastNameTextBox.DataBindings.Add("Text", dt, "LastName"); // LastName wird zusätzlich in TextBox angezeigt
    textBoxGUID.DataBindings.Add("Text", dt, "idpt"); // GUID wird zusätzlich in TextBox angezeigt

    //
    // Updaten von editierten Daten (hier nur LastName) funktioniert nicht: Was mache ich falsch?
    VistaDBCommand cmd = new VistaDBCommand();
    cmd.Connection = conn;
    String tempStr = "UPDATE Patient SET LastName = '" + pdLastNameTextBox.Text +
    "' WHERE idpt = '" + textBoxGUID.Text + "'";
    cmd.CommandText = tempStr;
    try
    {
    conn.Open();
    label4.Text = cmd.ExecuteNonQuery().ToString();
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    conn.Close();

  • #2
    Versuch mal folgendes.

    SqlConnection con = new SqlConnection(conStr);
    SqlCommand execCom = new SqlCommand(execStr,con);
    SqlTransaction taSql = null;
    try
    {
    con.Open();
    taSql = con.BeginTransaction();
    execCom.Transaction = taSql;
    execCom.ExecuteNonQuery();
    taSql.Commit();

    }
    catch (Exception e)
    {
    taSql.Rollback();
    }
    finally
    {
    if(con.State == ConnectionState.Open)
    {
    con.Close();
    }
    }

    mfg
    manfre

    Comment

    Working...
    X