我的构建成功,但是在调试过程中出现问题 [英] My build succeeds but having problem during debugging

查看:70
本文介绍了我的构建成功,但是在调试过程中出现问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 DataView dv;
 SqlConnection con;
 数据集ds;
 SqlDataAdapter da;
 SqlCommand cmd;
 公共 无效 DataBind()
 {
     con =  SqlConnection( @" );
     ds =  DataSet();
     da =  SqlDataAdapter(" ,骗子);
     con.Open();
     da.Fill(ds," );
     con.Close();
     dv =  DataView(ds.Tables [" ]);

     textBox1.DataBindings.Clear();
      textBox1.DataBindings.Add(" ,dv, 客户");  属性,数据源,列或字段
     dateTimePicker1.DataBindings.Clear();
     dateTimePicker1.DataBindings.Add(" ,dv, " );
     //  textBox7.DataBindings.Clear(); 
     //  textBox7.DataBindings.Add("Text",dv,"TOTAL"); 
     textBox3.DataBindings.Clear();
     textBox3.DataBindings.Add(" ,dv, " );
     textBox4.DataBindings.Clear();
     textBox4.DataBindings.Add(" ,dv, " );
     textBox5.DataBindings.Clear();
     textBox5.DataBindings.Add(" ,dv, " );
    //  textBox7.DataBindings.Clear(); 
     //  textBox7.DataBindings.Add("Text",dv,"TOTAL"); 
     textBox2.DataBindings.Clear();
     textBox2.DataBindings.Add(" ,dv, " );
     textBox8.DataBindings.Clear();
     textBox8.DataBindings.Add(" ,dv, " );

 }



// 私人空白button1_Click(对象发送者,EventArgs e)
 {
     cmd =  SqlCommand(" ,con);
     // 添加sql参数
     //  ========================= 
      cmd.Parameters.Add(" ,SqlDbType.Char," ,SqlDbType.VarChar," ,SqlDbType.VarChar," ,SqlDbType.VarChar," ,SqlDbType.VarChar," ,SqlDbType.VarChar," ,SqlDbType.Char," ,SqlDbType.Char," ].Value = textBox1.Text; 
     cmd.Parameters [" ].Value = dateTimePicker1.Value;
     cmd.Parameters [" ].Value = textBox3.Text;
     cmd.Parameters [" ].Value = textBox4.Text;
     cmd.Parameters [" ].Value = textBox5.Text;
     cmd.Parameters [" ].Value = textBox7.Text;
     cmd.Parameters [" ].Value = textBox2.Text;
     cmd.Parameters [" ].Value = textBox8.Text;
     con.Open();
     cmd.ExecuteNonQuery();
     con.Close();
     字符串 ID = textBox1.Text;
     MessageBox.Show(" );
     DataBind();
      dv.Sort = "  ;
     ]



[从解决方案"中添加]

 {
          cmd =  SqlCommand(" ,con);

          cmd.Parameters.Add(" ,SqlDbType.NVarChar," ,SqlDbType.NVarChar," ,SqlDbType.NVarChar," ,SqlDbType.NVarChar," ,SqlDbType.NVarChar," ,SqlDbType.NVarChar," ,SqlDbType.NVarChar," ,SqlDbType.NVarChar," ,SqlDbType.NVarChar," ].Value = textBox1.Text;
          cmd.Parameters [" ].Value = dateTimePicker1.Value;
          cmd.Parameters [" ].Value = textBox3.Text;
          cmd.Parameters [" ].Value = textBox4.Text;
          cmd.Parameters [" ].Value = textBox5.Text;
          cmd.Parameters [" ].Value = textBox7.Text;
          cmd.Parameters [" ].Value = textBox2.Text;
          cmd.Parameters [" ].Value = textBox8.Text;
          con.Open();
          cmd.ExecuteNonQuery(); // 错误弹出她//
          con.Close();
          字符串 name = textBox1.Text;
          MessageBox.Show(" );
          DataBind();
          dv.Sort = " ; 

解决方案

您正在将客户的正确拼写与错误的拼写混合在一起:

 cmd.Parameters.添加(" ,SqlDbType. 5 );
            cmd.Parameters [" ].Value = textBox1. //  private void button1_Click(对象发送者,EventArgs e)
{
    cmd =  SqlCommand(" ,骗子);
    // 添加sql参数
    //  ========================= 
    cmd.Parameters.Add(" ,SqlDbType.Char," ,SqlDbType.VarChar," ,SqlDbType.VarChar," ,SqlDbType.VarChar," ,SqlDbType.VarChar," ,SqlDbType.VarChar," ,SqlDbType.Char," ,SqlDbType.Char," ].Value = textBox1.Text;
    cmd.Parameters [" ].Value = dateTimePicker1.Value;
    cmd.Parameters [" ].Value = textBox3.Text;
    cmd.Parameters [" ].Value = textBox4.Text;
    cmd.Parameters [" ].Value = textBox5.Text;
    cmd.Parameters [" ].Value = textBox7.Text;
    cmd.Parameters [" ].Value = textBox2.Text;
    cmd.Parameters [" ].Value = textBox8.Text;
    con.Open();
    cmd.ExecuteNonQuery();
    con.Close();
    字符串 ID = textBox1.Text;
    MessageBox.Show(" );
    DataBind();
    dv.Sort = " ;
    ] 


另外,我不认为您可以在变量名称中使用空格(@AMOUNT GIVEN,@ AMOUNT LEFT).那可能是个问题.在您的SqlCommand部分中,我还用逗号替换了句点(按照下面的注释中的建议).最后,您可能将变量CUSTUMER拼写错误.正确的拼写可能是客户(除非您在整个应用程序和数据库中拼写错误).只是在此代码段中,您使用了两种不同的拼写方法.


 cmd =  " ,con); 


您现在两次通过道达尔.一次作为第三个参数,再次作为第七个参数.

 cmd =  SqlCommand(" ,等); 


 DataView dv;
 SqlConnection con;
 DataSet ds;
 SqlDataAdapter da;
 SqlCommand cmd;
 public void DataBind()
 {
     con = new SqlConnection(@"Data Source=abbas-PC\SQLEXPRESS;Initial Catalog=EREGISTRY;Integrated Security=True");
     ds = new DataSet();
     da = new SqlDataAdapter("select * from REGISTRY", con);
     con.Open();
     da.Fill(ds, "reg");
     con.Close();
     dv = new DataView(ds.Tables["reg"]);

     textBox1.DataBindings.Clear();
     textBox1.DataBindings.Add("Text", dv, "CUSTUMER"); //property,data source, column or field
     dateTimePicker1.DataBindings.Clear();
     dateTimePicker1.DataBindings.Add("Text", dv, "DATE");
     //textBox7.DataBindings.Clear();
     //textBox7.DataBindings.Add("Text", dv, "TOTAL");
     textBox3.DataBindings.Clear();
     textBox3.DataBindings.Add("Text", dv, "IMAGES NO");
     textBox4.DataBindings.Clear();
     textBox4.DataBindings.Add("Text", dv, "QUANTITY");
     textBox5.DataBindings.Clear();
     textBox5.DataBindings.Add("Text", dv, "RATE");
    // textBox7.DataBindings.Clear();
     //textBox7.DataBindings.Add("Text", dv, "TOTAL");
     textBox2.DataBindings.Clear();
     textBox2.DataBindings.Add("Text", dv, "AMOUNT GIVEN ");
     textBox8.DataBindings.Clear();
     textBox8.DataBindings.Add("Text", dv, "AMOUNT LEFT");

 }



// private void button1_Click(object sender, EventArgs e)
 {
     cmd = new SqlCommand("insert into REGISTRY values(@CUSTUMER,@DATE,@TOTAL.@IMAGES NO,@QUANTITY,@RATE,@AMOUNT GIVEN,@AMOUNT LEFT)", con);
     //adding sql parameters
     //========================
     cmd.Parameters.Add("CUSTUMER ", SqlDbType.Char, 5);
     cmd.Parameters.Add("@IMAGES NO", SqlDbType.VarChar, 40);
     cmd.Parameters.Add("QUANTITY", SqlDbType.VarChar, 30);
     cmd.Parameters.Add("@RATE", SqlDbType.VarChar, 30);
     cmd.Parameters.Add("@TOTAL", SqlDbType.VarChar, 60);
     cmd.Parameters.Add("@AMOUNT", SqlDbType.VarChar, 15);
     cmd.Parameters.Add("@AMOUNT GIVEN ", SqlDbType.Char, 15);
     cmd.Parameters.Add("@AMOUNT LEFT ", SqlDbType.Char, 10);
     cmd.Parameters["@CUSTOMER "].Value = textBox1.Text;
     cmd.Parameters["@DATE "].Value = dateTimePicker1.Value;
     cmd.Parameters["@IMAGE NO"].Value = textBox3.Text;
     cmd.Parameters["@QUANTITY"].Value = textBox4.Text;
     cmd.Parameters["@RATE"].Value = textBox5.Text;
     cmd.Parameters["@T0TAL"].Value = textBox7.Text;
     cmd.Parameters["AMOUNT GIVEN"].Value = textBox2.Text;
     cmd.Parameters["@AMOUNT LEFT"].Value = textBox8.Text;
     con.Open();
     cmd.ExecuteNonQuery();
     con.Close();
     string ID = textBox1.Text;
     MessageBox.Show("record added successfully");
     DataBind();
     dv.Sort = "CUSTUMER";
     ]



[Added from "solution"]

{
          cmd = new SqlCommand("insert into REGISTRY values(@CUSTUMER,@DATE,@TOTAL,@IMAGES NO,@QUANTITY,@RATE,@TOTAL,@AMOUNT GIVEN,@AMOUNT LEFT)", con);

          cmd.Parameters.Add("@CUSTUMER", SqlDbType.NVarChar, 5);
          cmd.Parameters.Add("@DATE", SqlDbType.NVarChar, 15);
          cmd.Parameters.Add("@IMAGES NO", SqlDbType.NVarChar, 40);
          cmd.Parameters.Add("@QUANTITY", SqlDbType.NVarChar, 30);
          cmd.Parameters.Add("@RATE", SqlDbType.NVarChar, 30);
          cmd.Parameters.Add("@TOTAL", SqlDbType.NVarChar, 10);
          cmd.Parameters.Add("@AMOUNT", SqlDbType.NVarChar, 15);
          cmd.Parameters.Add("@AMOUNT GIVEN", SqlDbType.NVarChar, 15);
          cmd.Parameters.Add("@AMOUNT LEFT", SqlDbType.NVarChar, 10);
          cmd.Parameters["@CUSTUMER"].Value = textBox1.Text;
          cmd.Parameters["@DATE"].Value = dateTimePicker1.Value;
          cmd.Parameters["@IMAGES NO"].Value = textBox3.Text;
          cmd.Parameters["@QUANTITY"].Value = textBox4.Text;
          cmd.Parameters["@RATE"].Value = textBox5.Text;
          cmd.Parameters["@TOTAL"].Value = textBox7.Text;
          cmd.Parameters["@AMOUNT GIVEN"].Value = textBox2.Text;
          cmd.Parameters["@AMOUNT LEFT"].Value = textBox8.Text;
          con.Open();
          cmd.ExecuteNonQuery();//error is popping her//
          con.Close();
          string name = textBox1.Text;
          MessageBox.Show("record added successfully");
          DataBind();
          dv.Sort = "CUSTUMER";

解决方案

You are mixing the correct spelling of Customer with the incorrect spelling:

cmd.Parameters.Add("CUSTUMER ", SqlDbType.Char, 5);
            cmd.Parameters["@CUSTOMER "].Value = textBox1.Text;


Most likely the issue is in the creation of your parameters. You forgot the @ symbol in front of a couple. Here is what it should look like:

// private void button1_Click(object sender, EventArgs e)
{
    cmd = new SqlCommand("insert into REGISTRY values(@CUSTUMER,@DATE,@TOTAL,@IMAGES NO,@QUANTITY,@RATE,@AMOUNT GIVEN,@AMOUNT LEFT)", con);
    //adding sql parameters
    //========================
    cmd.Parameters.Add("@CUSTUMER ", SqlDbType.Char, 5);
    cmd.Parameters.Add("@IMAGES NO", SqlDbType.VarChar, 40);
    cmd.Parameters.Add("@QUANTITY", SqlDbType.VarChar, 30);
    cmd.Parameters.Add("@RATE", SqlDbType.VarChar, 30);
    cmd.Parameters.Add("@TOTAL", SqlDbType.VarChar, 60);
    cmd.Parameters.Add("@AMOUNT", SqlDbType.VarChar, 15);
    cmd.Parameters.Add("@AMOUNT GIVEN ", SqlDbType.Char, 15);
    cmd.Parameters.Add("@AMOUNT LEFT ", SqlDbType.Char, 10);
    cmd.Parameters["@CUSTUMER "].Value = textBox1.Text;
    cmd.Parameters["@DATE "].Value = dateTimePicker1.Value;
    cmd.Parameters["@IMAGE NO"].Value = textBox3.Text;
    cmd.Parameters["@QUANTITY"].Value = textBox4.Text;
    cmd.Parameters["@RATE"].Value = textBox5.Text;
    cmd.Parameters["@T0TAL"].Value = textBox7.Text;
    cmd.Parameters["@AMOUNT GIVEN"].Value = textBox2.Text;
    cmd.Parameters["@AMOUNT LEFT"].Value = textBox8.Text;
    con.Open();
    cmd.ExecuteNonQuery();
    con.Close();
    string ID = textBox1.Text;
    MessageBox.Show("record added successfully");
    DataBind();
    dv.Sort = "CUSTUMER";
    ]


Also, I don''t believe that you can have spaces in your varible names (@AMOUNT GIVEN, @AMOUNT LEFT). That is probably an issue. In your SqlCommand section, I also replaced a period with a comma (as per the suggestion in the comments below). Finally, you probably spelled the variable CUSTUMER wrong. The correct spelling is probably CUSTOMER (unless you spelled it incorrectly throughout the application and the database). Just in this code snippet you spelled it two different ways.


cmd = new SqlCommand("insert into REGISTRY values(@CUSTUMER,@DATE,@TOTAL,@IMAGES NO,@QUANTITY,@RATE,@TOTAL,@AMOUNT GIVEN,@AMOUNT LEFT)", con);


You are now passing Total twice. Once as the third parameter and again as the 7th.

cmd = new SqlCommand("insert into REGISTRY values(@CUSTUMER,@DATE,@TOTAL,@IMAGES NO,@QUANTITY,@RATE,@AMOUNT GIVEN,@AMOUNT LEFT)", con);


这篇关于我的构建成功,但是在调试过程中出现问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆