插入到sql表中,通过csharp将值输入到一些文本框、组合框和日期时间选择器中

本文关键字:组合 文本 日期 选择器 时间 表中 sql 通过 csharp 输入 插入 | 更新日期: 2023-09-27 17:57:28

我对c sharp很陌生,正在努力自学。我需要将一些数据插入到SQL数据库中的Findings表中,该表将由用户输入,插入到一些文本框、组合框和日期时间选择器中。我的方法如下。

 private void SaveAsNewFinding_Click(object sender, EventArgs e)
      {
          DialogResult dr = MessageBox.Show("You are About to Save Your Finding 'nAre You Sure You Want to Do this?", "Save Findings", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);
      if (dr == DialogResult.Yes)
      {

          Edit.Enabled = true;
          Back.Enabled = true;
          Next.Enabled = true;
          Save.Visible = false;
          Cancel.Visible = false;
          Find_FC_ID();
          String FByTitle ="INSERT INTO dbo.Findings 
                            (Findings.Findings_Title, Findings.Findings_Description,Findings.Findings_Rating,Findings.Findings_Implication,Findings.Findings_Recomendation,Findings.Findings_ManagementComment,Findings.Findings_ManagerResponsible,Findings.Findings_CompletionDate,Findings.Findings_Status)
                            VALUES (@FindingsTitle,@FindingsDescription,@FindingsRating,@FindingsImplication,@FindingsRecomendation,@FindingsManagementComment,@FindingsManagerResponsible,@FindingsCompletionDate,@FindingsStatus)";



          SqlCommand cmd = new SqlCommand(FByTitle, con.main_connect());
          cmd.Parameters.AddWithValue("@FindingsTitle",Findings_Title_TextBox.Text);
          cmd.Parameters.AddWithValue("@FindingsDescription",Findings_Description_TextBox.Text);
          cmd.Parameters.AddWithValue("@FindingsRating",Findings_Rating_ComboBox.Text);
          cmd.Parameters.AddWithValue("@FindingsImplication",Findings_Implication_TextBox.Text);
          cmd.Parameters.AddWithValue("@FindingsRecommendation",Findings_Recommendation_TextBox.Text);
          cmd.Parameters.AddWithValue("@FindingsManagementComment",Findings_Comment_TextBox.Text);
          cmd.Parameters.AddWithValue("@FindingsManagerResponsible",Findings_Responsibleperson_TextBox.Text);
          cmd.Parameters.AddWithValue("@FindingsCompletionDate",(Convert.ToDateTime(dateTimePicker1.Text)).ToString("MM-dd-yyyy"));
          cmd.Parameters.AddWithValue("@FindingsStatus",Findings_Status_ComboBox.Text);

          cmd.ExecuteNonQuery(); 


          //  reader.Read();
          //reader.Close();
          Findings_Title_TextBox.ReadOnly = true;
          Findings_Description_TextBox.ReadOnly = true;
          //Findings_Rating_ComboBo
          Findings_Implication_TextBox.ReadOnly = true;
          Findings_Recommendation_TextBox.ReadOnly = true;
          Findings_Comment_TextBox.ReadOnly = true;
          Findings_Responsibleperson_TextBox.ReadOnly = true;
          dateTimePicker1.Enabled = false;
          Findings_Status_ComboBox.Enabled = false;
          Findings_Rating_ComboBox.Enabled = false;
          treeView1.Visible = false;

      }
      else if (dr == DialogResult.Cancel)
      {
          Edit.Enabled = true;
          Back.Enabled = true;
          Next.Enabled = true;
          Save.Visible = false;
          Cancel.Visible = false;
          Display(F_ID);
      }
      else if (dr == DialogResult.No)
      {

      }
  }

这种方法给了我以下错误,我不知道如何修复它们。

Error   1   Newline in constant Line-484(line which contains INSERT INTO dbo.Findings)
Error   2   Newline in constant Line-486(Line which contain the VALUES of the query)
Error   3   ; expected Line-485 (Line which contain the columns of the table)
Error   4   ; expected Line-486 Line-486(Line which contain the VALUES of the query)
Error   5   ; expected Line-486 Line-486(Line which contain the VALUES of the query)

根据我下面学习理论的书,以上错误的建议将不适用。感谢您帮助解决问题。请好心地澄清一下,因为我是这门语言的新手。

干杯。

插入到sql表中,通过csharp将值输入到一些文本框、组合框和日期时间选择器中

C#中有两种不同类型的字符串。你可以在这里读到它。

要解决代码中的问题,请更改字符串的类型

  string FByTitle =@"INSERT INTO dbo.Findings 
                            (Findings.Findings_Title, Findings.Findings_Description,Findings.Findings_Rating,Findings.Findings_Implication,Findings.Findings_Recomendation,Findings.Findings_ManagementComment,Findings.Findings_ManagerResponsible,Findings.Findings_CompletionDate,Findings.Findings_Status)
                            VALUES (@FindingsTitle,@FindingsDescription,@FindingsRating,@FindingsImplication,@FindingsRecomendation,@FindingsManagementComment,@FindingsManagerResponsible,@FindingsCompletionDate,@FindingsStatus)";

不能像在String FByTitle字符串中那样插入换行符。

如果你想避免排长队,就像你应该写的那样,你必须这样写:

String FByTitle ="INSERT INTO dbo.Findings " + 
                "(Findings.Findings_Title, Findings.Findings_Description,Findings.Findings_Rating," + 
                "Findings.Findings_Implication,Findings.Findings_Recomendation,Findings.Findings_ManagementComment," + 
                "Findings.Findings_ManagerResponsible,Findings.Findings_CompletionDate,Findings.Findings_Status) " + 
                " VALUES (@FindingsTitle,@FindingsDescription,@FindingsRating,@FindingsImplication," + 
                "@FindingsRecomendation,@FindingsManagementComment,@FindingsManagerResponsible,@FindingsCompletionDate,@FindingsStatus)";

甚至更短。每个段都在自己的线上,并用"+"号连接。

这不是VB;-)