我想在访问数据中插入货币我使用的数据类型货币一般数字格式这里是我的c#code
decimal price = decimal.Parse(vCCY_Rate.ToString(), System.Globalization.NumberStyles.Currency);
SCmd.Parameters.AddWithValue("@CCY_Rate", price);
nReturnValue = (int)SCmd.ExecuteNonQuery();
其中 vCCY_Rate 是双倍但这总是在数据库中存储1并且有时间为0 你能告诉我如何使用c#在数据库访问中存储货币。我有preion 6的数据,也在货币数据类型中提到了一般格式和预定
SQL命令
OleDbConnection SConnection = new OleDbConnection();
OleDbCommand SCmd = new OleDbCommand();
Save_Main("INSERT into tblOprCurrency_Rate ([CCY_ID_From], [CCY_ID_To] , [CCY_Active] , [CCY_Rate] ,[CCY_Chr]) VALUES (? , ? , ? ,? ,? )", cmbCurrency_From.SelectedItem.Value, cmbCurrency_To.SelectedItem.Value, Convert.ToDouble(txtCCY_Rate.Text), chkCCY_Active.Checked, 0, hdfSr_ID.Value);
public int Save_Main(string vQuery, string vCCY_ID_From, string vCCY_ID_To, double vCCY_Rate, bool bCCY_Active, int vIsUpdate, string vCCY_SrNo)
{
sErrorCode = "";
int nReturnValue = -1;
try
{
decimal price = (decimal)vCCY_Rate;
// decimal price = decimal.Parse(vCCY_Rate.ToString(), System.Globalization.NumberStyles.Currency);
SCmd.CommandText = vQuery;
SCmd.CommandType = CommandType.Text;
SCmd.Parameters.AddWithValue("@CCY_ID_From", vCCY_ID_From);
SCmd.Parameters.AddWithValue("@CCY_ID_To", vCCY_ID_To);
SCmd.Parameters.AddWithValue("@CCY_Rate", price);
SCmd.Parameters.AddWithValue("@CCY_Active", bCCY_Active);
SCmd.Parameters.AddWithValue("@CCY_Chr", Convert.ToDouble(0));
SCmd.Parameters.AddWithValue("@CCY_SrNo", vCCY_SrNo);
SCmd.Connection = SConnection;
SCmd.CommandTimeout = pSQL_CommandTimeOut;
SDataAdapter.SelectCommand = SCmd;
SConnection.Open();
nReturnValue = (int)SCmd.ExecuteNonQuery();
}
CCY_Rate是货币数据类型和生成格式,在ACCESS
中有6个小数位答案 0 :(得分:0)
您在代码中使用了命名参数&查询中的位置参数 - Rate&活动的顺序错误。
此外,您还添加了6个参数,但只添加了5个位置(问号)参数。