SQL插入问题... [英] Sql Insert Problem...

查看:77
本文介绍了SQL插入问题...的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨..

问题c#从sql列中保存值给..

数据转换问题... SQL Managament Studio 2008

此代码行有什么问题??

<罢工>我可以帮我吗?请

Hi..

The problem c# give values to from sql columns save..

Data convertion problem... sql managament studio 2008

What is the problem with this code line???

Can ı help me?? please

  private void BtnPersonAdd_Click(object sender, EventArgs e)
{
  SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\...........mdf;Integrated Security=True;User Instance=True;");
  try
  {
    SqlCommand cmd = new SqlCommand("INSERT INTO personekle (personcardno,personname,personsurname,persondatestart,persondatefinish,personmaas,personpositions,personshiftclass,persondesc) values (''@personcardno'',''@personname'',''@personsurname'',''@persondatestart'',''@persondatefinish'',''@personmaas'',''@personpositions'',''@personshiftclass'',''@persondesc'')", conn);

    cmd.Parameters.Add("@personcardno", SqlDbType.Int).Value = Convert.ToInt32(TxtCardNo.Text);

    cmd.Parameters.Add("@personname", SqlDbType.NVarChar, 50).Value = Convert.ToString(TxtPersonName.Text);

    cmd.Parameters.Add("@personsurname", SqlDbType.NVarChar, 50).Value = Convert.ToString(TxtPersonSurname.Text);

    cmd.Parameters.Add("@persondatestart", SqlDbType.Date).Value = Convert.ToDateTime(TxtPersonJobsStartDate.Text);

    cmd.Parameters.Add("@persondatefinish", SqlDbType.Date).Value = Convert.ToDateTime(TxtJobsFinishDate.Text);

    cmd.Parameters.Add("@personmaas", SqlDbType.NVarChar).Value = Convert.ToString(TxtPersonMaas.Text);

    cmd.Parameters.Add("@personpositions", SqlDbType.NVarChar, 50).Value = Convert.ToString(TxtPersonPosition.Text);

    cmd.Parameters.Add("@personshiftclass", SqlDbType.NVarChar).Value = Convert.ToString(TxtShiftId.Text);

    cmd.Parameters.Add("@persondesc", SqlDbType.NVarChar).Value = Convert.ToString(TxtPersonDesc.Text);

    conn.Open();

    cmd.ExecuteNonQuery();

    MessageBox.Show("Baglanti Basarili");
  }
  catch (SqlException ex)
  {
    MessageBox.Show("Baglantida Bir Hata Var" + ex);
  }
  finally
  {
    conn.Close();
    MessageBox.Show("Baglantı Kapandı");
  }
}

推荐答案

Mhr,

您必须在插入语句的值"部分中删除单引号:

Hi Mhr,

you''ve got to remove the single quotes in the values section of your insert statement:

 SqlCommand cmd = new SqlCommand("INSERT INTO personekle    
  (   
      personcardno,
      personname,
      personsurname,
      persondatestart,
      persondatefinish,
      personmaas,
      personpositions,
      personshiftclass,
      persondesc
)

values (
    @personcardno,
    @personname,
    @personsurname,
    @persondatestart,
    @persondatefinish,
    @personmaas,
    @personpositions,
    @personshiftclass,
    @persondesc
)", conn);



只要在变量周围加上引号,它们就会被解释为sql中的字符串.然后,SQL Server看到该类型不适合该列,并进行了抗议,因为未进行任何显式转换.
如果使用参数化SQL,则在设置参数时提及正确的类型将有助于构建正确的SQL语句.

字符串格式的SQL具有更好的可读性.将多余的回车粘贴到您的解决方案中后,需要删除.

干杯


曼弗雷德(Manfred)



As soon as you place quotes around the variables they are interpreted as strings inside the sql. SQL Server then sees that the type does not fit the column and protests since no explicit conversions are made.
If using parameterized SQL the setting of the parameters with mentioning of the correct type will take care of building the correct SQL statement.

SQL in string formatted for better readability. Superfluous carriage returns need to be deleted after pasting that into your solution.

Cheers


Manfred


更改此内容:
Change this:
SqlCommand cmd = new SqlCommand("INSERT INTO personekle (personcardno,personname,personsurname,persondatestart,persondatefinish,personmaas,personpositions,personshiftclass,persondesc) values ('@personcardno','@personname','@personsurname','@persondatestart','@persondatefinish','@personmaas','@personpositions','@personshiftclass','@persondesc')", conn);






to

SqlCommand cmd = new SqlCommand("INSERT INTO personekle (personcardno,personname,personsurname,persondatestart,persondatefinish,personmaas,personpositions,personshiftclass,persondesc) values (@personcardno,@personname,@personsurname,@persondatestart,@persondatefinish,@personmaas,@personpositions,@personshiftclass,@persondesc)", conn);



看看此链接 [



Have a look at this link [^]for simple details.


这篇关于SQL插入问题...的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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