ビューからいくつかのデータを挿入してシートに挿入しますが、10進数の列は数値型を挿入しないで、テキストとして挿入されています。問題?
here is an exampleCを使用してシートをExcelに安全に挿入するには
using (OleDbConnection cn = new OleDbConnection(connectionString))
{
cn.Open();
for (int i = 0; i < Grid.RowCount; i++)
{
OleDbCommand cmd1 = new OleDbCommand("INSERT INTO [Data$] " +
"([Title],[Name],[DayOfWeek],[Approval State],[Date],[User ID],[Week],[Project Code],[Project Regular Hours],[Project Overtime Hours],[Sick],[Vacation],[Holiday],[Unpaid Leave],[Other],[Timesheet URL])" +
"VALUES(@Title,@Name,@DayOfWeek,@ApprovalState,@Date,@UserID,@Week,@ProjectCode,@ProjectRegularHours,@ProjectOvertimeHours,@Sick,@Vacation,@Holiday,@UnpaidLeave,@Other,@TimesheetURL)", cn);
List<OleDbParameter> parameters = new List<OleDbParameter>
{
new OleDbParameter("@Title", Grid.GetRowCellValue(i,"Title").ToString()),
new OleDbParameter("@Name", Grid.GetRowCellValue(i,"Ad_Soyad").ToString()),
new OleDbParameter("@DayOfWeek", Grid.GetRowCellValue(i,"DayOfWeeks").ToString()),
new OleDbParameter("@ApprovalState", Grid.GetRowCellValue(i,"ApprovalState").ToString()),
new OleDbParameter("@Date",Grid.GetRowCellValue(i,"Tarix").ToString()),
new OleDbParameter("@UserID", Grid.GetRowCellValue(i,"UserID").ToString()),
new OleDbParameter("@Week", Grid.GetRowCellValue(i,"Weeks").ToString()),
new OleDbParameter("@ProjectCode", Grid.GetRowCellValue(i, "ProjectCode").ToString()),
new OleDbParameter("@ProjectRegularHours",Convert.ToDecimal(Grid.GetRowCellValue(i, "ProjectRegularHours").ToString(),new CultureInfo("en"))){DbType=DbType.Decimal},
new OleDbParameter("@ProjectOvertimeHours", Grid.GetRowCellValue(i,"ProjectOvertimeHours").ToString()){DbType=DbType.Decimal},
new OleDbParameter("@Sick", Grid.GetRowCellValue(i,"Sick").ToString()),
new OleDbParameter("@Vacation", Grid.GetRowCellValue(i,"Vacation").ToString()),
new OleDbParameter("@Holiday", Grid.GetRowCellValue(i,"Holiday").ToString()),
new OleDbParameter("@UnpaidLeave", Grid.GetRowCellValue(i,"UnpaidLeave").ToString()),
new OleDbParameter("@Other", Grid.GetRowCellValue(i,"Other").ToString()),
new OleDbParameter("@TimesheetURL", Grid.GetRowCellValue(i,"TimesheetURL").ToString())
};
cmd1.Parameters.AddRange(parameters.ToArray());
cmd1.ExecuteNonQuery();
}
}
どのように挿入しますか?コードを追加します。あなたは「安全に」挿入するという意味はどういう意味ですか? –
コードを投稿しないと、コードの問題を解決することは不可能です。 Excelは問題なく小数点を処理できます。 *ローカライズされた*文字列の代わりに*小数点記号*を挿入してもよろしいですか? –
コードのスクリーンショットではなく、質問に*コード*を載せてください。スクリーンショットはコンパイルできません –