以下のコードは、「入力文字列が正しい形式ではありませんでした」というエラーを示しています
Microsoft.Practices.EnterpriseLibrary.Data.Database Obj = Microsoft.Practices.EnterpriseLibrary.Data.DatabaseFactory.CreateDatabase("InvoiceConString");
//Create your DbCommand
DbCommand com =Obj.GetStoredProcCommand("StoredProcedure2", InvoiceComments, Convert.ToDateTime(InvoiceDate), ProductName, Description, Convert.ToInt32(Qty), Convert.ToInt32(Amount), Convert.ToInt32(TaxAmount), Convert.ToInt32(paidAmount), CustomerName, CustomerAddress, Convert.ToInt32(UnitCost), Convert.ToInt32(InvoiceReference));
//Execute
int rows =com.ExecuteNonQuery();
con.Close();
return "data Updated Successfully";
および以下のような私の接続文字列
static string conStr = ConfigurationManager.ConnectionStrings["InvoiceConString"].ConnectionString;
しかし、Microsoft.Practices.EnterpriseLibrary.Data.Database を使用せずにレコードを更新すると、エラーは表示されず、レコードは簡単に更新されます。
注:-変数の変換に間違いはありません。同じ変数を使用してレコードを更新しているため、以下のように更新すると
SqlCommand com = new SqlCommand("StoredProcedure2", con);
com.CommandType = CommandType.StoredProcedure;
com.Parameters.Add("@InvoiceComments", SqlDbType.VarChar, 150).Value = InvoiceComments;
com.Parameters.Add("@InvoiceDate", SqlDbType.DateTime).Value = Convert.ToDateTime(InvoiceDate);
com.Parameters.Add("@ProductName", SqlDbType.VarChar, 50).Value = ProductName;
com.Parameters.Add("@Description", SqlDbType.VarChar, 150).Value = Description;
com.Parameters.Add("@Qty", SqlDbType.Int).Value = Convert.ToInt32(Qty);
com.Parameters.Add("@Amount", SqlDbType.Int).Value = Convert.ToInt32(Amount);
com.Parameters.Add("@TaxAmount", SqlDbType.Int).Value = Convert.ToInt32(TaxAmount);
com.Parameters.Add("@PaidAmount", SqlDbType.Int).Value = Convert.ToInt32(paidAmount);
com.Parameters.Add("@CustomerName", SqlDbType.VarChar, 50).Value = CustomerName;
com.Parameters.Add("@CustomerAddress", SqlDbType.VarChar, 150).Value = CustomerAddress;
com.Parameters.Add("@UnitCost", SqlDbType.Int).Value = Convert.ToInt32(UnitCost);
com.Parameters.Add("@InvoiceReference", SqlDbType.Int).Value = Convert.ToInt32(InvoiceReference);
con.Open();
com.ExecuteNonQuery();
con.Close();
上記のコードは問題なく動作しています。