J'essaye de construire un programme C# .net qui fonctionne comme un sous-fichier RPG sur l'AS400.AS400 C# .net insertion de nouveaux problèmes d'enregistrement
Faites fonctionner la partie de sous-fichier générale. Je peux afficher, puis modifier et mettre à jour les enregistrements existants. Je vais exploser dans mon code où j'essaye d'insérer un nouvel enregistrement. Explosion sur le
cmd.ExecuteNonQuery();
Si vous voulez voir comment cela fonctionne sans l'insert aller à
Regardez le Website1a
est le code ici.
using IBM.Data.DB2.iSeries;
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class WebForm3 : System.Web.UI.Page
{
protected void btnBack_Click(object sender, EventArgs e)
{
Server.Transfer("WebForm1a.aspx");
}
protected void btnUpdate_Click(object sender, EventArgs e)
{
ConnectionStringSettingsCollection cssc =
ConfigurationManager.ConnectionStrings;
String connString = cssc["FTWAS400"].ToString();
iDB2Connection conn = new iDB2Connection(connString);
conn.Open();
iDB2Command cmd = new iDB2Command(
"insert into tburrows.qcustcdt (cusnum, init, lstnam, street, city, state, zipcod, cdtlmt, chgcod, baldue, cdtdue) values (@cusnum, @init, @lstnam, @street, @city, @state, @zipcod, @cdtlmt, @chgcod, @baldue, @cdtdue)", conn);
cmd.DeriveParameters();
cmd.Parameters["@cusnum"].Value = Request["txtCUSNUM"];
cmd.Parameters["@init" ].Value = Request["txtINIT"];
cmd.Parameters["@lstnam"].Value = Request["txtLSTNAM"];
cmd.Parameters["@street"].Value = Request["txtSTREET"];
cmd.Parameters["@city"].Value = Request["txtCITY"];
cmd.Parameters["@state"].Value = Request["txtSTATE"];
cmd.Parameters["@zipcod"].Value = Request["txtZIPCOD"];
cmd.Parameters["@cdtlmt"].Value = Request["txtCDTLMT"];
cmd.Parameters["@chgcod"].Value = Request["txtCHGCOD"];
cmd.Parameters["@baldue"].Value = Request["txtBALDUE"];
cmd.Parameters["@cdtdue"].Value = Request["txtCDTDUE"];
cmd.ExecuteNonQuery();
cmd.Dispose();
conn.Close();
btnBack_Click(sender, e);
}
}
Toute aide sera grandement appréciée.
Thomas
Quand vous dites que c'est "exploser", que voulez-vous dire exactement? Je m'attends à ce qu'une exception soit lancée - et les détails de cette exception seront très importants. Btw, connaissez-vous les instructions "using" pour éviter d'appeler explicitement cmd.Dispose() et conn.Close()? –
Jon: Ce que je reçois est un « OverflowException non prise en charge par le code utilisateur « Le paramètre est pas dans la plage de valeurs valides Assurez-vous que vous n'êtes pas division par zéro « » Sous les conseils de dépannage je reçois . » Hope this helps. Thomas – user39968
Le code entier en est à Http://144.162.90.78/thomas/notes – user39968