C# 第1行的数据太长

C# 第1行的数据太长,c#,mysql,C#,Mysql,我正试图用c语言更新数据库中一行名为gestion_concur的内容# 我填充文本框,这样查询就会像 update gestion_concour.concour set Code = 'CAEPST', Designation = 'Concours Accées a EPST', Specialite = 'EPST' where Code = '3'; 我得到了这个 我试图在woekbench中通过查询,结果很好。 那么问题是什么呢 (代码是VARCHAR(10))那么,您使用的是Ex

我正试图用c语言更新数据库中一行名为gestion_concur的内容#

我填充文本框,这样查询就会像

update gestion_concour.concour set Code = 'CAEPST', Designation = 'Concours Accées a EPST', Specialite = 'EPST' where Code = '3';
我得到了这个 我试图在woekbench中通过查询,结果很好。 那么问题是什么呢
(代码是VARCHAR(10))

那么,您使用的是ExecuteReader。如果要执行更新命令,应使用
ExecuteNonQuery
。因此:

try
{
    int i = mcmd.ExecuteNonQuery();
}
这句话似乎也错了:

mcmd.Parameters.AddWithValue("@N_Code", input_Des);
mcmd.Parameters.AddWithValue("@N_Des", input_Des);
似乎您添加的是名称而不是代码。也许应该是:

mcmd.Parameters.AddWithValue("@N_Code", input_Code );
更改此选项也不会造成伤害,只是为了确保后面没有导致问题的空间:

string input_Code = Code.Text.Trim();
string input_Des = Des.Text.Trim();
string input_Spe = Spe.Text.Trim();
string selected = ConcourList.Text.Trim();

看起来您为参数使用了错误的变量。试一试

mcmd.Parameters.AddWithValue("@N_Code", input_Code );
而不是

mcmd.Parameters.AddWithValue("@N_Code", input_Des);

我可能会做这些事情来找出哪里出了问题-

  • 如果
    code
    列实际上是varchar(10),请检查数据库
  • 如果是,则尝试检查字符串
    input\u code
    的值是否为“CAEPST”
  • 如果选中,请确保在插入文本框之前修剪文本框
  • 您还可以测试以仅更新列
  • 另一个选项是,我们可以使用实际的文本框作为您的值。像这样-
    mcmd.Parameters.AddWithValue(“@N_code”,code.Text.ToString())

  • 或者我们也可以这样做,只是看看它是否真的通过-
    mcmd.Parameters.AddWithValue(“@N_code”,“CAEPST”)


  • 希望有帮助。:)

    mcmd.Parameters.AddWithValue(“@N_code”,输入Des)看起来不对我想你的问题可以通过在concurlist后面添加一个Trim来解决。Text@Wimmel对不起,弗雷普error@IlyesGHOMRANI
    input\u code
    的值是多少?正确,但这很难解决如何更改的问题??对不起,我还是一样probleme@IlyesGHOMRANI
    input\u code
    的值是多少?@IlyesGHOMRANI您是否绝对确定
    code
    是varchar(10)?在调试器中查看时,
    input\u code
    的值是否为“CAEPST”?
    mcmd.Parameters.AddWithValue("@N_Code", input_Des);