当前位置: 首页 > 编程语言 > C#

Sqlbulkcopy好像对我不起作用分享

时间:2023-04-11 00:06:32 C#

来自数据源的DateTime类型的给定值无法转换为指定目标列的decimal类型。我的数据源是DataTabledt=newDataTable();dt.Columns.Add(newDataColumn("EmpId",typeof(Int64)));dt.Columns.Add(newDataColumn("FromDate",typeof(DateTime)));dt.Columns.Add(newDataColumn("ToDate",typeof(DateTime)));dt.列。添加(新数据列(“DaysPresent”,typeof(十进制)));dt.Columns.Add(newDataColumn("OpeningAdvance",typeof(double)));dt.Columns.Add(newDataColumn("AdvanceDeducted",typeof(double)));dt.Columns.Add(newDataColumn("RemainingAdvance",typeof(double)));dt.Columns.Add(newDataColumn("SalaryGiven",typeof(double)));dt.列。添加(新数据列(“CreatedDate”,typeof(DateTime)));foreach(GridViewRowrowingridEmployee.Rows){if(row.RowType==DataControlRowType.DataRow){DataRowdr=dt.NewRow();dr["EmpId"]=Convert.ToInt64(((HiddenField)row.Cells[0].FindControl("HiddenId")).Value);dr["FromDate"]=Convert.ToDateTime(GetMonthNumberFromAbbreviation(fromdate[1].ToString())+'/'+fromdate[0].ToString()+'/'+fromdate[2].ToString());dr["ToDate"]=Convert.ToDateTime(GetMonthNumberFromAbbreviation(todate[1].ToString())+'/'+todate[0].ToString()+'/'+todate[2].ToString());dr["DaysPresent"]=Convert.ToDecimal(((TextBox)row.Cells[3].FindControl("TxtDaysPresent")).Text);dr["OpeningAdvance"]=Convert.ToDouble(((TextBox)row.Cells[4].FindControl("txtOpeningAdv")).Text);dr["AdvanceDeducted"]=Convert.ToDouble(((TextBox)row.Cells[5].FindControl("TxtAdvanceDeducted")).Text);dr["RemainingAdvance"]=Convert.ToDouble(((TextBox)row.Cells[6].FindControl("TxtClosingAdvance")).Text);dr["SalaryGiven"]=Convert.ToDouble(((TextBox)row.Cells[7].FindControl("TxtSalary")).Text);dr["CreatedDate"]=Convert.ToDateTime(System.DateTime.Now.ToString());dt.Rows.Add(博士);}}SqlBulkCopysbc=newSqlBulkCopy(connectionString);sbc.DestinationTableName="工资明细";sbc.WriteToServer(dt);sbc.关闭();我的目标表如下所示,alttexthttp://img231.imageshack.us/img231/5448/mytable.jpg您需要指定列映射,因为DataTable和目标表中的列数不同您可以这样做:上面是C#学习教程:Sqlbulkcopy似乎并不适合我分享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——sbc.ColumnMappings.Add("EmpId","EmpId");sbc.ColumnMappings.Add("FromDate","FromDate");//依此类推,还有其余的列;然后是sbc.WriteToServer(dt);sbc.关闭();,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: