C# &引用@p4:字符串截断:max=4,len=6,value=';女性'&引用;插入到数据库时出错
我有一个带有强类型数据集的学生数据库。我有10个专栏。问题在于性别专栏。每当我手动输入到datagrid并保存它的时候。但当我从excel文件导入数据并将其保存到数据库时,我遇到了这个错误 @p4:字符串截断:max=4,len=6,value='Female' 我已经在dataset.xsd中将MaxLength设置为6,在数据库模式中将其设置为nchar(6)。下面是我的代码C# &引用@p4:字符串截断:max=4,len=6,value=';女性'&引用;插入到数据库时出错,c#,sql,C#,Sql,我有一个带有强类型数据集的学生数据库。我有10个专栏。问题在于性别专栏。每当我手动输入到datagrid并保存它的时候。但当我从excel文件导入数据并将其保存到数据库时,我遇到了这个错误 @p4:字符串截断:max=4,len=6,value='Female' 我已经在dataset.xsd中将MaxLength设置为6,在数据库模式中将其设置为nchar(6)。下面是我的代码 for (int i = 0; i < dt.Rows.Count; i++) { DataRow r
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow row = this.dataSet.StudentsDatabase.NewRow();
this.dataSet.StudentsDatabase.Rows.Add(row);
this.sbdgv.Rows[i].DefaultCellStyle.BackColor = Color.Yellow;
this.dataSet.StudentsDatabase.Rows[i]["Class"] = dt.Rows[i]["Class"];
this.dataSet.StudentsDatabase.Rows[i]["Section"] = dt.Rows[i]["Section"];
this.dataSet.StudentsDatabase.Rows[i]["Name"] = dt.Rows[i]["Name"];
this.dataSet.StudentsDatabase.Rows[i]["Gender"] = dt.Rows[i]["Gender"];
this.dataSet.StudentsDatabase.Rows[i]["Caste"] = dt.Rows[i]["Caste"];
this.dataSet.StudentsDatabase.Rows[i]["Present"] = dt.Rows[i]["Present"];
this.dataSet.StudentsDatabase.Rows[i]["Meals"] = dt.Rows[i]["Meals"];
this.dataSet.StudentsDatabase.Rows[i]["DateAdded"] = dt.Rows[i]["DateAdded"];
this.dataSet.StudentsDatabase.Rows[i]["DateDeleted"] = dt.Rows[i]["DateDeleted"];
}
谁能告诉我出了什么问题吗
@p4 : String truncation: max=4, len=6, value='Female'
女性的最大值是四个字符,如果您尝试插入六个字符,则必须缩短插入值的长度。我找到了一个解决方法。出于某种原因,
datasetableadapter.Update
不起作用,但在使用datasetableadapter.Insert时,一切正常。这是更新后的保存方法
for (int i = 0; i < this.dataSet.StudentsDatabase.Rows.Count ; i++)
{
this.taStudentsDb.Insert((byte)dataSet.StudentsDatabase.Rows[i]["Class"],
dataSet.StudentsDatabase.Rows[i]["Section"].ToString(),
dataSet.StudentsDatabase.Rows[i]["Name"].ToString(),
dataSet.StudentsDatabase.Rows[i]["Gender"].ToString(),
dataSet.StudentsDatabase.Rows[i]["Caste"].ToString(),
dataSet.StudentsDatabase.Rows[i]["Present"].ToString(),
dataSet.StudentsDatabase.Rows[i]["Meals"].ToString(),
dataSet.StudentsDatabase.Rows[i]["DateAdded"].ToString(),
dataSet.StudentsDatabase.Rows[i]["DateDeleted"].ToString() );
}
MessageBox.Show("Save Successfull.", "Success!", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
for(int i=0;i
如果可能的话,我会请求mods不要关闭这个线程,因为我没有得到正确的解决方案这正是消息所说的Female
是六个字符,但数据库只接受您试图插入其中的列中的四个字符。你是不是把它插错栏了?与论坛网站不同,我们不使用“谢谢”或“感谢任何帮助”或签名。看见“。此外,请尝试填写新的行
,然后再执行添加
。嗨,John。我没有把它插入错误的列,因为男性条目插入时没有任何问题。唯一的主键StudentId字段的长度为4。试着插入Fema
,看看是否有效。操作员说他已将数据库列设置为6 nchar并更新了数据集。@Steve:显然不是。@Johnsa显然了解,所以这是需要回答的问题,减少输入只能确认网络上出现了问题change@steve看来你理解我的问题。你有过类似的问题吗,兄弟
for (int i = 0; i < this.dataSet.StudentsDatabase.Rows.Count ; i++)
{
this.taStudentsDb.Insert((byte)dataSet.StudentsDatabase.Rows[i]["Class"],
dataSet.StudentsDatabase.Rows[i]["Section"].ToString(),
dataSet.StudentsDatabase.Rows[i]["Name"].ToString(),
dataSet.StudentsDatabase.Rows[i]["Gender"].ToString(),
dataSet.StudentsDatabase.Rows[i]["Caste"].ToString(),
dataSet.StudentsDatabase.Rows[i]["Present"].ToString(),
dataSet.StudentsDatabase.Rows[i]["Meals"].ToString(),
dataSet.StudentsDatabase.Rows[i]["DateAdded"].ToString(),
dataSet.StudentsDatabase.Rows[i]["DateDeleted"].ToString() );
}
MessageBox.Show("Save Successfull.", "Success!", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);