Ich versuche eine einfache Einfügung zu testen, bevor ich vollwertiger werde. Aber egal was ich versuchte, es würde einfach nicht funktionieren.Warum funktioniert meine einfache Einfügung nicht?
Einige Hintergrundinformationen über das Formular. Das Formular enthält Labels, die automatisch mit Daten gefüllt werden. Einige müssen vom Benutzer selbst eingegeben werden. Ich verwende nur 3 einfache Variablen, um die Dinge zu testen. Jetzt, selbst wenn ich den SQL direkt einbettle, gehen die Daten nicht in die Datenbank ein.
internal void UpdateEPMTRequest2(string EPMTNumber, string name, int status)
{
con.Open();
// var sql = "INSERT INTO EPMT_MASTER_REQUEST (EPMTID, , Status) values (@ePMTNumber, @name, @status)";
// SqlCommand cmd = new SqlCommand("Exec[ePMT_SP_UpdateEPMTRequest2] '2', 'Tanagara', 0");
SqlCommand cmd = new SqlCommand("ePMT_SP_UpdateEPMTRequest2", con);
// SqlCommand cmd = new SqlCommand(sql, con);
// cmd.Parameters.AddWithValue("@action", action);
cmd.Parameters.AddWithValue("@ePMTNumber", EPMTNumber);
cmd.Parameters.AddWithValue("@name", name);
cmd.Parameters.AddWithValue("@status", status);
cmd.CommandType = CommandType.StoredProcedure;
cmd.ExecuteNonQuery();
con.Close();
}
private void UpdateEPMTRequest2(string EPMTNumber, string name, int status)
{
try
{
eBiz.UpdateEPMTRequest2(EPMTNumber, name, status);
}
catch (Exception ex) { }
}
internal void UpdateEPMTRequest2(string EPMTNumber, string name, int status)
{
eDAO.UpdateEPMTRequest2(EPMTNumber, name, status);
}
protected void btnSave_Click(object sender, EventArgs e)
{
if (Request.QueryString["EPMTID"] != null)
{
string Action = "SaveUpdate";
string EPMTNumber = Request.QueryString["EPMTID"].ToString();
int status = Convert.ToInt32(ViewState["CStatus"].ToString());
// UpdateEPMTRequest(Action, EPMTNumber, status);
Response.Redirect("ePMTDraft.aspx?msg=1");
}
else
{
// string Action = "Save";
if (Request.QueryString["EPMTID"] == null)
if (status == 0)
try
{
EPMTNumber = Request.QueryString["EPMTID"].ToString();
// UpdateEPMTRequest(Action, EPMTNumber, status);
UpdateEPMTRequest2(EPMTNumber, name, status);
}
catch (Exception ex) { }
Response.Redirect("ePMTDraft.aspx?msg=1");
}
}
ALTER PROCEDURE [dbo].[ePMT_SP_UpdateEPMTRequest2]
-- Add the parameters for the stored procedure here
@ePMTNumber varchar(20),
@name varchar(100),
@status int
AS BEGIN - SET NOCOUNT ON hinzugefügt zusätzliche Ergebnismengen von zu verhindern - mit SELECT-Anweisungen zu stören. NOCOUNT EINSTELLEN;
-- Insert statements for procedure here
INSERT INTO EPMT_MASTER_REQUEST (EPMTID, IssuerName, status) values (@ePMTNumber, @name, @status)
END
Der Name ist in diesem Fall ein Auto-besiedelten Gebiet, die einen Sitzungswert hat, die ich weiß nicht, ob Sitzungswert anstelle des string name verwendet werden soll.
Ein weiteres Problem ist, dass der Name mir einen Fehler gibt - nicht im Kontext gefunden. Der Name ist eigentlich für ein Label lblInititor.text.
Sie müssen uns Ihre Verbindungszeichenfolge mitteilen (ändern Sie ein beliebiges Passwort) und 'catch (Exception ex) {}' entfernen. –
Ich habe die Verbindungszeichenfolge weggelassen. Aber wenn du die Insert-Anweisung sehen willst, kann ich sie in – tangara
hinzufügen. Der leere Catch-Block ist wirklich gefährlich und das ist der Punkt, an dem du feststeckst und nicht in der Lage bist herauszufinden, was falsch läuft. –