2017-10-22 8 views
0

こんにちは私はDataGridviewからデータを挿入しようとしています今列visit_dateが見つかりません、DataGridviewからのC#insert、列Visit_timeが見つかりません

と私は私のコードは、私はそれが列名が見つからないと言う理由を理解するように見えるいけないこの

private void exitToolStripMenuItem_Click(object sender, EventArgs e) 
{ 
    using (MySqlConnection cn = new MySqlConnection(constring)) 
    { 
     cn.Open(); 
     for (int i = 0; i < dataGridView1.Rows.Count - 1; i++) 
     { 
      string sql = @"insert into final_appointments(visit_time,visit_date,fullname,visitor_address,visitor_city,visitor_telephone,id_method,organization,visit_type,reason,person_visit,img) values(@visit_time,@visit_date,@fullname,@visitor_address,@visitor_city,@visitor_telephone,@id_method,@organization,@visit_type,@reason,@person_visit,@img)"; 
      using (MySqlCommand cmd = new MySqlCommand(sql, cn)) 
      { 
       try 
       { 
        cmd.Parameters.AddWithValue("@visit_time", dataGridView1.Rows[i].Cells["visit_time"].Value); 
        cmd.Parameters.AddWithValue("@visit_date", dataGridView1.Rows[i].Cells["visit_date"].Value); 
        cmd.Parameters.AddWithValue("@fullname", dataGridView1.Rows[i].Cells["fullname"].Value); 
        cmd.Parameters.AddWithValue("@visitor_address", dataGridView1.Rows[i].Cells["visitor_address"].Value); 
        cmd.Parameters.AddWithValue("@visitor_city", dataGridView1.Rows[i].Cells["viitor_city"].Value); 
        cmd.Parameters.AddWithValue("@visitor_telephone", dataGridView1.Rows[i].Cells["visitor_telephone"].Value); 
        cmd.Parameters.AddWithValue("@id_method", dataGridView1.Rows[i].Cells["id_method"].Value); 
        cmd.Parameters.AddWithValue("@organization", dataGridView1.Rows[i].Cells["organization"].Value); 
        cmd.Parameters.AddWithValue("@visit_type", dataGridView1.Rows[i].Cells["visit_type"].Value); 
        cmd.Parameters.AddWithValue("@reason", dataGridView1.Rows[i].Cells["reason"].Value); 
        cmd.Parameters.AddWithValue("@person_visit", dataGridView1.Rows[i].Cells["person_visit"].Value); 
        cmd.Parameters.AddWithValue("@img", dataGridView1.Rows[i].Cells["img"].Value); 

        var msg = MessageBox.Show("You are About to Confirm Information"+Environment.NewLine+"Please Click 'OK' to Confirm?","Information",MessageBoxButtons.YesNo,MessageBoxIcon.Question); 
        if (msg == DialogResult.Yes) 
        { 
         cmd.ExecuteNonQuery(); 
         MessageBox.Show("Appointment Fully Confirmed!", "information", MessageBoxButtons.OK, MessageBoxIcon.Information); 
        } 
        else if (msg == DialogResult.No) 
        { 
         return; 
        } 
       } 
       catch(Exception ex) 
       { 
        MessageBox.Show(ex.ToString()); 
       } 
      } 
     } 
    } 
} 

のように見えるこの

visit_time,visit_date,fullname,visitor_address,visitor_city,visitor_telephone,id_method,organization,visit_type,reason,person_visit,img 

のように見える表を持っている、アムはここに失われました

+0

テーブル 'final_appointments'には、その列が定義されていますか? – oerkelens

+0

オフトピック、 'else if(msg == DialogResult.No) { return; } 'ブロックは何も役に立たないので、それを削除することもできます。 – oerkelens

+0

@oerkelensはいそうです。 – Qalid

答えて

0

まあ、スペルは正しいようですが、C#は何かについて不平を言っています。私は何かが一致しないと信じなければならない。

下記のサンプルコードをご覧ください。このC#ソースコードは、DataGridViewをデータベースに接続し、DataGridViewからデータベース値を新規作成/更新または削除する方法を示しています。

using System; 
using System.Data; 
using System.Windows.Forms; 
using System.Data.SqlClient; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     SqlCommand sCommand; 
     SqlDataAdapter sAdapter; 
     SqlCommandBuilder sBuilder; 
     DataSet sDs; 
     DataTable sTable;   

     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      string connectionString = "Data Source=Your_Server_Name;Initial Catalog=Your_Database_Name;Integrated Security=True"; 
      string sql = "SELECT * FROM Stores"; 
      SqlConnection connection = new SqlConnection(connectionString); 
      connection.Open(); 
      sCommand = new SqlCommand(sql, connection); 
      sAdapter = new SqlDataAdapter(sCommand); 
      sBuilder = new SqlCommandBuilder(sAdapter); 
      sDs = new DataSet(); 
      sAdapter.Fill(sDs, "Stores"); 
      sTable = sDs.Tables["Stores"]; 
      connection.Close(); 
      dataGridView1.DataSource = sDs.Tables["Stores"]; 
      dataGridView1.ReadOnly = true; 
      save_btn.Enabled = false; 
      dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; 
     } 

     private void new_btn_Click(object sender, EventArgs e) 
     { 
      dataGridView1.ReadOnly = false; 
      save_btn.Enabled = true; 
      new_btn.Enabled = false; 
      delete_btn.Enabled = false; 
     } 

     private void delete_btn_Click(object sender, EventArgs e) 
     { 
      if (MessageBox.Show("Do you want to delete this row ?", "Delete", MessageBoxButtons.YesNo) == DialogResult.Yes) 
      { 
       dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index); 
       sAdapter.Update(sTable); 
      } 
     } 

     private void save_btn_Click(object sender, EventArgs e) 
     { 
      sAdapter.Update(sTable); 
      dataGridView1.ReadOnly = true; 
      save_btn.Enabled = false; 
      new_btn.Enabled = true; 
      delete_btn.Enabled = true; 
     } 
    } 
} 

もちろん、変数を使用して、やっているようにすることができます。それはそれを行うための最も安全な、そして好ましい方法です!

private void Button4_Click(System.Object sender, System.EventArgs e) 
{ 
    DataTable tblReadCSV = new DataTable(); 
    tblReadCSV.Columns.Add("FName"); 
    tblReadCSV.Columns.Add("LName"); 
    tblReadCSV.Columns.Add("Department"); 
    TextFieldParser csvParser = new TextFieldParser("C:\\Users\\Excel\\Desktop\\Employee.txt"); 
    csvParser.Delimiters = new string[]{","}; 
    csvParser.TrimWhiteSpace = true; 
    csvParser.ReadLine(); 
    while (!(csvParser.EndOfData == true)) 
    { 
     tblReadCSV.Rows.Add(csvParser.ReadFields()); 
    } 

    SqlConnection con = new SqlConnection("Server=Server_Name;Database=DB_Name;Trusted_Connection=True;"); 
    string strSql = "Insert into Employee(FName,LName,Department) values(@Fname,@Lname,@Department)"; 
    SqlCommand cmd = new SqlCommand(); 
    cmd.CommandType = CommandType.Text; 
    cmd.CommandText = strSql; 
    cmd.Connection = con; 
    cmd.Parameters.Add("@Fname", SqlDbType.VarChar, 50, "FName"); 
    cmd.Parameters.Add("@Lname", SqlDbType.VarChar, 50, "LName"); 
    cmd.Parameters.Add("@Department", SqlDbType.VarChar, 50, "Department"); 
    SqlDataAdapter dAdapter = new SqlDataAdapter(); 
    dAdapter.InsertCommand = cmd; 
    int result = dAdapter.Update(tblReadCSV); 
} 
関連する問題