このストアド プロシージャ。- SP_insertinfo は、エントリをテーブルに挿入します。
ODBC DSN 経由で Informix データベースに接続しています。
これは私のコードです。これはエラーをスローしたり、レコードを挿入したりしません。
sequeLink 3.10 32 ビット ドライバー経由で接続しています。アプリケーションは 64 ビット OS で実行されます。
データが挿入されない理由を特定しようとしています (ブレークポイントを設定すると、パラメーター化されたステートメントを実際の DB に取得すると、同じデータが挿入されますが、アプリケーション コードから実行すると失敗します)。
int rowsInserted = command.ExecuteNonQuery(); //この行は常に -1 を返し、データは挿入されません。
どんな考え/アイデアも非常に役に立ちますか?
private void InsertInfo()
{
try
{
using(var connection = new OdbcConnection("dsn=mydsn;UID=myusername;PWD=****;"))
{
var command = connection.CreateCommand();
command.CommandType = CommandType.StoredProcedure;
command.Connection = connection;
command.CommandText = "execute procedure SP_insertinfo(?,?)";
command.Parameters.Clear();
//Insert parameter values
var paramId = new OdbcParameter("ID", OdbcType.Int) { Value = Convert.ToInt32(txtID.Text.Trim()) };
command.Parameters.Add(paramId);
var paramCountry = new OdbcParameter("Country", OdbcType.VarChar, 25) { Value = txtCountry.Text.Trim() };
command.Parameters.Add(paramCountry);
connection.Open();
int rowsInserted = command.ExecuteNonQuery(); //This line is always returning -1 and data doesn't get inserted.
if (rowsInserted > 0)
{
MessageBox.Show("Insert data saved.");
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString()) ;
}
}