【发布时间】:2013-08-20 16:00:05
【问题描述】:
我正在使用此代码。
DataTable dst = new DataTable();
dst = (DataTable)dataGridView1.DataSource;
this.dataGridView1.Columns[2].ValueType = typeof(DateTime);
this.dataGridView1.Columns[6].ValueType = typeof(DateTime);
dst.TableName = "DataGridviewTpXml";
dst.WriteXml("\\HomeCareVisit.xml", true);
MessageBox.Show("downloaded to file");
从 datagridview 写入 XML 和这段代码
for (i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
{
VisitRefNo = ds.Tables[0].Rows[i].ItemArray[0].ToString();
PatientNo = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[1]);
ScheduledDateTime = Convert.ToDateTime(ds.Tables[0].Rows[i].ItemArray[2]);
TreatmentInstructions = ds.Tables[0].Rows[i].ItemArray[3].ToString();
MedicalStaffID = Convert.ToInt32(ds.Tables[0].Rows[i].ItemArray[4]);
Priority = ds.Tables[0].Rows[i].ItemArray[5].ToString();
ActualVisitDateTime = Convert.ToDateTime(ds.Tables[0].Rows[i].ItemArray[6]);
TreatmentProvided = ds.Tables[0].Rows[i].ItemArray[7].ToString();
Prescription = ds.Tables[0].Rows[i].ItemArray[8].ToString();
AdvisoryNotes = ds.Tables[0].Rows[i].ItemArray[9].ToString();
FurtherVisitRequired = Convert.ToBoolean(ds.Tables[0].Rows[i].ItemArray[10]);
FurtherVisitRequired = Convert.ToBoolean(ds.Tables[0].Rows[i].ItemArray[10]);
sql = "SET IDENTITY_INSERT HomeCareVisit ON update HomeCareVisit set PatientNo='" + PatientNo + "',ScheduledDateTime='" + ScheduledDateTime + "',TreatmentInstructions='" + TreatmentInstructions + "', MedicalStaffID='" + MedicalStaffID + "', Priority='" + Priority + "',ActualVisitDateTime='" + ActualVisitDateTime + "',TreatmentProvided='" + TreatmentProvided + "',Prescription='" + Prescription + "',AdvisoryNotes='" + AdvisoryNotes + "',FurtherVisitRequired='" + (FurtherVisitRequired ? "1" : "0") + "'where VisitRefNo='" + VisitRefNo + "';";
从 xml 读取到 SQL。但是它给了我以下异常
“将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。 该语句已终止。” 如何解决这个问题?
我正在尝试制作的应用程序存储某些详细信息,包括时间日期。
IDE 正在使用 Visual Studio 语言 ADO.Net c# 服务器 SQL 服务器。
任何帮助将不胜感激,谢谢。
附加细节我正在使用 datagridview 添加/编辑和删除记录。如果不清楚,我希望一些额外的信息会有所帮助?
【问题讨论】: