我想在访问数据中插入货币我使用的是通用数字格式的数据类型货币,这是我的 c# 代码
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# 在数据库访问中存储货币。我有 precion 6 的数据,在货币数据类型中也提到了通用格式和 presicion
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 位小数
您在代码中使用命名参数和查询中的位置参数 - Rate 和 Active 的顺序错误。
您还添加了 6 个参数,但只有 5 个位置(问号)参数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句