You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多行文本框数据存入SQL Server数据库报Invalid Column Name错误如何处理

问题原因
  • 表名不匹配:INSERT语句中操作的表为tbl_overall_details,但你提供的实际存在的表结构是tbl_nametally_details。若tbl_overall_details不存在,或该表的字段与你写入的Serial_no/Batch_no等列名不一致,就会触发Invalid Column Name报错。
  • 参数数据类型与表结构不匹配:表中Serial_no、Batch_no、Worder_no、Service_no、Blue_name_qty均为int类型,Worder_date为date类型,但代码中所有参数都设置为VarChar类型传字符串,即使隐式转换成功也存在格式不符的报错风险。
  • 字段长度不足:Blue_name字段仅为nvarchar(50),两行多语言姓名很容易超出长度限制,导致内容截断或报错。
解决办法
  1. 修正插入语句的表名,改为实际要写入的tbl_nametally_details;如果确实需要写入tbl_overall_details,先核对该表的列名、字段类型是否和代码中写的完全一致,注意大小写敏感的SQL Server实例会对大小写不同的同拼写字段判定为不同列。
  2. 调整参数数据类型和表结构对齐,参考修改后的代码:
ValidateField(textBox47);

if (HasEmptyField)
{
    return;
}
// 修正表名
query = "insert into tbl_nametally_details (Serial_no, Batch_no, Worder_no, Worder_date, Service_no, Blue_name, Blue_name_qty) VALUES (@d1, @d2, @d3, @d4,@d5, @d6,@d7)";

using (cmd1 = new SqlCommand(query, con))
{
    // 参数类型和表结构对齐
    cmd1.Parameters.Add("@d1", SqlDbType.Int).Value = int.Parse(lbl_serail_no.Text.Trim());
    cmd1.Parameters.Add("@d2", SqlDbType.Int).Value = int.Parse(lbl_batch_no.Text.Trim());
    cmd1.Parameters.Add("@d3", SqlDbType.Int).Value = int.Parse(textBox1.Text.Trim());
    cmd1.Parameters.Add("@d4", SqlDbType.Date).Value = dateTimePicker1.Value.Date;
    cmd1.Parameters.Add("@d5", SqlDbType.Int).Value = int.Parse(textBox3.Text.Trim());
    // 指定nvarchar长度,提前校验内容长度避免溢出
    var blueName = textBox45.Text.Replace(Environment.NewLine,"\r\n").Trim();
    if (blueName.Length > 50) 
    {
        // 可加自定义的长度超限提示逻辑
        return;
    }
    cmd1.Parameters.Add("@d6", SqlDbType.NVarChar, 50).Value = blueName;
    cmd1.Parameters.Add("@d7", SqlDbType.Int).Value = int.Parse(textBox47.Text.Trim());

    cmd1.ExecuteNonQuery();
}
con.Close();
  1. 若业务允许输入更长的双语言姓名,建议调整表结构中Blue_name的长度,例如修改为nvarchar(200),避免内容截断。
  2. 建议增加try-catch异常捕获逻辑,获取更详细的报错信息,方便快速定位问题。

内容的提问来源于stack exchange,提问作者siraj ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:45:04