C# &引用@p4:字符串截断:max=4,len=6,value=';女性'&引用;插入到数据库时出错

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

我有一个带有强类型数据集的学生数据库。我有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 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);