无法从C#在SQL Server中存储数据

时间:2015-06-17 07:19:26

标签: c# sql sql-server

private void button_Pass_Click(object sender, EventArgs e) 
{
    SqlConnection con1 = new SqlConnection("Data Source=JAYI-PC\\SQLEXPRESS;Initial Catalog=db-ub;Integrated Security=True");
    con1.Open();
    SqlCommand cmd1 = new SqlCommand("Insert into Visitors(Id,Visitor_Name,Organisation_Name,Phone_No,No_Person,To_whom,Purpose,Color_Code,Day_In,Time_In,Image) values (@id,@vname,@org,@phn,@nop,@whom,@prps,@ccd,@dI,@tI,@img)");
    cmd1.Parameters.AddWithValue("@id", textBox_Id.Text);
    cmd1.Parameters.AddWithValue("@vname", textBox_NameV.Text);
    cmd1.Parameters.AddWithValue("@org", textBox_Org.Text);
    cmd1.Parameters.AddWithValue("@phn", textBox_Phn.Text);
    cmd1.Parameters.AddWithValue("@nop", numericUpDown_Person.Value.ToString());
    cmd1.Parameters.AddWithValue("@whom", comboBox_TOWHOM.SelectedItem.ToString());
    string prps;
    if(radioButton_OFFICIAL.Checked) 
    {
        prps = "Official";
        cmd1.Parameters.AddWithValue("@prps", prps);
    } else if(radioButton_PERSONAL.Checked) 
    {
        prps = "Personal";
        cmd1.Parameters.AddWithValue("@prps", prps);
    }
    cmd1.Parameters.AddWithValue("@ccd", comboBox_color.SelectedItem.ToString());
    cmd1.Parameters.AddWithValue("@dI", textBox_Dayin.Text);
    cmd1.Parameters.AddWithValue("@tI", textBox_timeR.Text);
    Image img = pictureBox_UB.Image;
    byte[] arr;
    ImageConverter converter = new ImageConverter();
    arr = (byte[]) converter.ConvertTo(img, typeof (byte[]));
    cmd1.Parameters.AddWithValue("@img", img);
    MessageBox.Show("Record has been inserted");
    con1.Close();
}

我在SQL Server数据库中有一个包含列

的表
Id, Visitor_Name, Organisation_Name, Phone_No, 
No_Person, To_whom, Purpose, Color_Code, 
Day_In, Time_In, Day_Out, Time_Out, Image

现在我想将(Id, Visitor_Name, Organisation_Name, Phone_No, No_Person, To_whom, Purpose, Color_Code, Day_In, Time_In, Image)的值插入数据库。

我在上面显示的C#中编写了这段代码,但它工作正常,但没有将任何数据存储到SQL Server数据库。请帮忙。

2 个答案:

答案 0 :(得分:3)

这里有两个问题:

  1. 您没有在命令中添加连接,请使用command string and a connection初始化的构造函数,如:

    new SqlCommand("Insert into Visitors(Id,Visitor_Name,Organisation_Name,Phone_No,No_Person,To_whom,Purpose,Color_Code,Day_In,Time_In,Image) values (@id, @vname, @org, @phn, @nop, @whom, @prps, @ccd, @dI, @tI, @img)", con1);
    
  2. 您没有执行命令!添加:

    cmd1.ExecuteNonQuery() 
    
  3. 之前MessageBox.Show

答案 1 :(得分:2)

我认为你应该在MessageBox.Show之前添加cmd1.ExecuteNonQuery()(“已插入记录”);

因为你还没有执行过sqlcommand。