将数据发送到接收数据库

我试图发送数据到访问数据库,但它不断给出相同的错误(ExecuteNonQuery:连接属性尚未初始化),我试图find相关的主题的答案,但我似乎没有看到问题的地方,请帮助, 谢谢。 代码如下:

public static string[] questions = new string[7]; private void SaveData_Load(object sender, EventArgs e) { //Selecting data from login string fileName = @"U:\Projects\Visual Studio\Extras resources\login.xlsx"; string connectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source={0};Extended Properties='Excel 12.0;HDR=YES;IMEX=0'", fileName); using (OleDbConnection cn = new OleDbConnection(connectionString)) { try { cn.Open(); OleDbCommand command = new OleDbCommand("select * from [lineAudit$]", cn); using (OleDbDataReader dr = command.ExecuteReader()) { while (dr.Read()) { string row1Col0 = Convert.ToString(dr[0]); string row1cl1 = Convert.ToString(dr[1]); dateTime_bx.Text = row1Col0; auditor_bx.Text = row1cl1; } } } catch (Exception ex) { MessageBox.Show("Failed due to" + ex.Message); } cn.Close(); } //Selecting data from datawindow string fileName2 = @"U:\Projects\Visual Studio\Extras resources\dataWindow.xlsx"; string connectionString2 = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source={0};Extended Properties='Excel 12.0;HDR=YES;IMEX=0'", fileName2); using (OleDbConnection cn = new OleDbConnection(connectionString2)) { try { cn.Open(); OleDbCommand command = new OleDbCommand("select * from [lineAudit$]", cn); using (OleDbDataReader dr = command.ExecuteReader()) { while (dr.Read()) { string row1Col0 = Convert.ToString(dr[0]); string row1Col1 = Convert.ToString(dr[1]); string row1Col2 = Convert.ToString(dr[2]); string row1Col3 = Convert.ToString(dr[3]); opId_bx.Text = row1Col0; shopOrder_bx.Text = row1Col1; partNumber_bx.Text = row1Col2; opNumber_bx.Text = row1Col3; } } } catch (Exception ex) { MessageBox.Show("Failed due to" + ex.Message); } cn.Close(); } //Selecting data from documentation string fileName3 = @"U:\Projects\Visual Studio\Extras resources\documentation.xlsx"; string connectionString3 = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source={0};Extended Properties='Excel 12.0;HDR=YES;IMEX=0'", fileName3); using (OleDbConnection cn = new OleDbConnection(connectionString3)) { try { cn.Open(); OleDbCommand command = new OleDbCommand("select * from [lineAudit$]", cn); using (OleDbDataReader dr = command.ExecuteReader()) { while (dr.Read()) { string row1Col0 = Convert.ToString(dr[0]); string row1Col1 = Convert.ToString(dr[1]); q1_bx.Text = row1Col0; //boolean to check if string is empty Documentation doc = new Documentation(); if (a == 2) { questions[0] = " Q1- " + row1Col1; } else { } } } } catch (Exception ex) { MessageBox.Show("Failed due to" + ex.Message); } cn.Close(); } //Selecting data from materials string fileName4 = @"U:\Projects\Visual Studio\Extras resources\materials.xlsx"; string connectionString4 = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source={0};Extended Properties='Excel 12.0;HDR=YES;IMEX=0'", fileName4); using (OleDbConnection cn = new OleDbConnection(connectionString4)) { try { cn.Open(); OleDbCommand command = new OleDbCommand("select * from [lineAudit$]", cn); using (OleDbDataReader dr = command.ExecuteReader()) { while (dr.Read()) { string row1Col0 = Convert.ToString(dr[0]); string row1Col1 = Convert.ToString(dr[1]); q2_bx.Text = row1Col0; //boolean to check if string is empty if (b == 2) { questions[1] = " Q2- " + row1Col1; } else { } } } } catch (Exception ex) { MessageBox.Show("Failed due to" + ex.Message); } cn.Close(); } //Selecting data from procedure string fileName5 = @"U:\Projects\Visual Studio\Extras resources\comformity.xlsx"; string connectionString5 = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source={0};Extended Properties='Excel 12.0;HDR=YES;IMEX=0'", fileName5); using (OleDbConnection cn = new OleDbConnection(connectionString5)) { try { cn.Open(); OleDbCommand command = new OleDbCommand("select * from [lineAudit$]", cn); using (OleDbDataReader dr = command.ExecuteReader()) { while (dr.Read()) { string row1Col0 = Convert.ToString(dr[0]); string row1Col1 = Convert.ToString(dr[1]); q3_bx.Text = row1Col0; //boolean to check if string is empty if (c == 2) { questions[2] = " Q3- " + row1Col1; } else { } } } } catch (Exception ex) { MessageBox.Show("Failed due to" + ex.Message); } cn.Close(); } //Selecting data from No_procedure string fileName6 = @"U:\Projects\Visual Studio\Extras resources\proceadure.xlsx"; string connectionString6 = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source={0};Extended Properties='Excel 12.0;HDR=YES;IMEX=0'", fileName6); using (OleDbConnection cn = new OleDbConnection(connectionString6)) { try { cn.Open(); OleDbCommand command = new OleDbCommand("select * from [lineAudit$]", cn); using (OleDbDataReader dr = command.ExecuteReader()) { while (dr.Read()) { string row1Col0 = Convert.ToString(dr[0]); string row1Col1 = Convert.ToString(dr[1]); q4_bx.Text = row1Col0; //boolean to check if string is empty if (d == 2) { questions[3] = " Q4- " + row1Col1; } else { } } } } catch (Exception ex) { MessageBox.Show("Failed due to" + ex.Message); } cn.Close(); } //Selecting data from calibration string fileName7 = @"U:\Projects\Visual Studio\Extras resources\calibration.xlsx"; string connectionString7 = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source={0};Extended Properties='Excel 12.0;HDR=YES;IMEX=0'", fileName7); using (OleDbConnection cn = new OleDbConnection(connectionString5)) { try { cn.Open(); OleDbCommand command = new OleDbCommand("select * from [lineAudit$]", cn); using (OleDbDataReader dr = command.ExecuteReader()) { while (dr.Read()) { string row1Col0 = Convert.ToString(dr[0]); string row1Col1 = Convert.ToString(dr[1]); q5_bx.Text = row1Col0; //boolean to check if string is empty if (f == 2) { questions[4] = " Q5- " + row1Col1; } else { } } } } catch (Exception ex) { MessageBox.Show("Failed due to" + ex.Message); } cn.Close(); } //Selecting data from safety string fileName8 = @"U:\Projects\Visual Studio\Extras resources\safety.xlsx"; string connectionString8 = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source={0};Extended Properties='Excel 12.0;HDR=YES;IMEX=0'", fileName8); using (OleDbConnection cn = new OleDbConnection(connectionString8)) { try { cn.Open(); OleDbCommand command = new OleDbCommand("select * from [lineAudit$]", cn); using (OleDbDataReader dr = command.ExecuteReader()) { while (dr.Read()) { string row1Col0 = Convert.ToString(dr[0]); string row1Col1 = Convert.ToString(dr[1]); q6_bx.Text = row1Col0; //boolean to check if string is empty if (g == 2) { questions[5] = " Q6- " + row1Col1; } else { } } } } catch (Exception ex) { MessageBox.Show("Failed due to" + ex.Message); } cn.Close(); } //Selecting data from packing string fileName9 = @"U:\Projects\Visual Studio\Extras resources\packing.xlsx"; string connectionString9 = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source={0};Extended Properties='Excel 12.0;HDR=YES;IMEX=0'", fileName9); using (OleDbConnection cn = new OleDbConnection(connectionString9)) { try { cn.Open(); OleDbCommand command = new OleDbCommand("select * from [lineAudit$]", cn); using (OleDbDataReader dr = command.ExecuteReader()) { while (dr.Read()) { string row1Col0 = Convert.ToString(dr[0]); string row1Col1 = Convert.ToString(dr[1]); q7_bx.Text = row1Col0; //boolean to check if string is empty if (h == 2) { questions[6] = " Q7- " + row1Col1; } else { } } } } catch (Exception ex) { MessageBox.Show("Failed due to" + ex.Message); } cn.Close(); } // Call the methods. string result1 = ConvertStringArrayToString(questions); noteStr_bx.Text = result1; } string ConvertStringArrayToString(string[] questions) { // Concatenate all the elements into a StringBuilder. StringBuilder builder = new StringBuilder(); foreach (string value in questions) { builder.Append(value); builder.Append('.'); } return builder.ToString(); } private void BTNSave_Click(object sender, EventArgs e) { //sending data to database OleDbConnection connect = new OleDbConnection(); connect.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=U:\Projects\Visual Studio\Extras resources\line_Audits.accdb"; string QueryText = "INSERT INTO lineAudit (dateTime,auditor,operator,partNumber,shopOrder,operationNumber,documentationAndRevision,labeling,conformity,procedure,calibration,safety,packing,Notes) values (@dateTime,@auditor,@operator,@partNumber,@shopOrder,@operationNumber,@documentationAndRevision,@labeling,@conformity,@procedure,@calibration,@safety,@packing,@Notes)"; connect.Open(); using (OleDbCommand command = new OleDbCommand(QueryText)) { try { OleDbDataAdapter da = new OleDbDataAdapter("INSERT INTO lineAudit", connect); String dateTime = dateTime_bx.Text; String auditor = auditor_bx.Text; String operador = opId_bx.Text; String partNumber = partNumber_bx.Text; String shopOrder = shopOrder_bx.Text; String operationNumber = opNumber_bx.Text; String q1 = q1_bx.Text; String q2 = q2_bx.Text; String q3 = q3_bx.Text; String q4 = q4_bx.Text; String q5 = q5_bx.Text; String q6 = q6_bx.Text; String q7 = q7_bx.Text; String note = noteStr_bx.Text; command.Parameters.AddWithValue("@dateTime", this.dateTime_bx.Text); command.Parameters.AddWithValue("@auditor", this.auditor_bx.Text); command.Parameters.AddWithValue("@operator", this.opId_bx.Text); command.Parameters.AddWithValue("@partNumber", this.partNumber_bx.Text); command.Parameters.AddWithValue("@shopOrder", this.shopOrder_bx.Text); command.Parameters.AddWithValue("@operationNumber", this.opNumber_bx.Text); command.Parameters.AddWithValue("@documentationAndRevision", this.q1_bx.Text); command.Parameters.AddWithValue("@labeling", this.q2_bx.Text); command.Parameters.AddWithValue("@conformity", this.q3_bx.Text); command.Parameters.AddWithValue("@procedure", this.q4_bx.Text); command.Parameters.AddWithValue("@calibration", this.q5_bx.Text); command.Parameters.AddWithValue("@safety", this.q6_bx.Text); command.Parameters.AddWithValue("@packing", this.q7_bx.Text); command.Parameters.AddWithValue("@Notes", this.noteStr_bx.Text); command.ExecuteNonQuery(); //connect.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); connect.Close(); } } } private void dateTime_bx_TextChanged(object sender, EventArgs e) { } } } 

告诉你的OleDbCommand在QueryText之后使用什么连接
代替:

 using (OleDbCommand command = new OleDbCommand(QueryText)) 

使用:

 using (OleDbCommand command = new OleDbCommand(QueryText, connect)) 

像这样的东西应该为你工作。

 using ExcelToAccessLib; using System; using System.IO; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { private string AccessFile = Path.Combine( AppDomain.CurrentDomain.BaseDirectory, "Database1.accdb"); private string ExcelFile = Path.Combine( AppDomain.CurrentDomain.BaseDirectory, "Customers.xlsx"); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Importer ImportData = new Importer( new ExcelInfo { FileName = ExcelFile, HasHeaders = true, SheetName = "Customers" }, new AccessInfo { FileName = AccessFile, TableName = "Customers1", FieldNames = "CompanyName,ContactName" }); if (ImportData.Run()) { MessageBox.Show("Import complete"); } } } }