Excel에 값을 삽입하는 동안 오류 메시지가 표시됩니다 (오류 메시지 : 쿼리 값의 수와 대상 필드가 동일하지 않습니다). 누구든지이 오류를 해결하도록 도울 수 있습니다. 이 코드의 대상은 SQL 데이터베이스에서 값을 가져 와서 Excel에 삽입하는 것입니다. .xls 파일에 대한 연결 문자열이 다르기 때문에OLEDB ExecuteNonQuery Excel 시트에 값을 삽입하는 동안 오류가 발생했습니다.
// 코드는
string sheetname = comboBox1.SelectedItem.ToString();
int s = 1, w = 0;
string ssss = "";
Microsoft.Office.Interop.Excel.Application xlapp = new Microsoft.Office.Interop.Excel.Application();
xlapp.Visible = true;
xlapp.Workbooks.Open(@"\\server\planet\CalculationDatabase\Database.xls");
string path = @"\\server\planet\CalculationDatabase\Database.xls";
string path1 = @"\\server\planet\CalculationDatabase\Settings.xlsx";
string con = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + @";Extended Properties=""Excel 12.0 Macro;HDR=YES""";
string con1 = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path1 + @";Extended Properties=""Excel 12.0 Macro;HDR=YES""";
OleDbConnection cn2 = new OleDbConnection(con1);
cn2.Open();
OleDbCommand cmd2 = new OleDbCommand("select * from [" + sheetname.ToString() + "$]", cn2);
OleDbDataReader rd2 = cmd2.ExecuteReader();
while (rd2.Read())
{
ssss = rd2["Info Name"].ToString();
if (ssss.ToString() == "")
{
w = int.Parse(s.ToString());
break;
}
s++;
}
rd2.Close();
cn2.Close();
var queries = string.Join(",", (Enumerable.Range(1, w).Select(i => "ip" + i)));
SqlConnection con3 = new SqlConnection("Data Source=173.83.250.71,1433; Network Library=DBMSSOCN; Initial Catalog=paradigm;User Id=sa; password=Paradigm123");
con3.Open();
SqlCommand cmd3 = new SqlCommand("select " + queries.ToString() + " from paradigm.dbo.pinput where tempsheet='" + comboBox1.SelectedItem.ToString() + "'", con3);
SqlDataReader rd3 = cmd3.ExecuteReader();
OleDbConnection cn = new OleDbConnection(con);
cn.Open();
while (rd3.Read())
{
var queries1 = string.Join(",", (Enumerable.Range(0, w - 1).Select(i => "'" + float.Parse(rd3[i].ToString()) + "'")));
cmd1.ExecuteNonQuery();//I am getting error here
}
rd3.Close();
con3.Close();
}
암호, 사용자 및 IP가 실제가 아님을 알려주십시오. – Steve
이제 오류가 발생한 위치를 추측해야합니다. – TGlatzer