C# 在OLEDB连接字符串中,数据源是DATASOURCE={0}这是什么意思?
我有一个aspx页面,它允许您上载excel模板,并将模板中的内容提取到datatable中,然后在SQL Server数据库中更新。 使用OLEDB数据提供程序 Conn=new-OleDbConnectionstring.FormatProvider=Microsoft.ACE.OLEDB.12.0; 数据源={0};EXCEL2.0XML扩展属性;HDR=是;IMEX=1;',文件名 在上面的连接字符串中,数据源被指定为数据源={0},这是什么意思 这是上传按钮背后的代码C# 在OLEDB连接字符串中,数据源是DATASOURCE={0}这是什么意思?,c#,asp.net,sql-server,oledb,C#,Asp.net,Sql Server,Oledb,我有一个aspx页面,它允许您上载excel模板,并将模板中的内容提取到datatable中,然后在SQL Server数据库中更新。 使用OLEDB数据提供程序 Conn=new-OleDbConnectionstring.FormatProvider=Microsoft.ACE.OLEDB.12.0; 数据源={0};EXCEL2.0XML扩展属性;HDR=是;IMEX=1;',文件名 在上面的连接字符串中,数据源被指定为数据源={0},这是什么意思 这是上传按钮背后的代码 pro
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.FileName.ToString() == "")
{
lblMessage.Text = "Please select the File to Upload";
lblMessage.ForeColor = System.Drawing.Color.Red;
return;
}
string filename = Server.MapPath("Temp/" + FileUpload1.FileName.ToString());
FileUpload1.SaveAs(filename);
HttpPostedFile postedFile = this.FileUpload1.PostedFile;
OleDbConnection Conn = null;
OleDbDataAdapter DA;
DataTable DT = new DataTable();
DataTable tempDT = new DataTable();
if (Path.GetExtension(postedFile.FileName) == ".xls")
{
Conn = new OleDbConnection(string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1;'", filename));
OleDbCommand excelCmd = new OleDbCommand();
string sheet_Name = "";
excelCmd.Connection = Conn;
excelCmd.Connection.Open();
DT = excelCmd.Connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
sheet_Name = DT.Rows[0]["TABLE_NAME"].ToString();
excelCmd.Connection.Close();
if (sheet_Name == "")
{
//Throw Excption if Sheet is not present in file
}
DA = new OleDbDataAdapter(string.Format("select * from [{0}]", sheet_Name), Conn);
DA.Fill(DT);
string Qno = string.Empty;
string Qdesc = string.Empty;
string Header = string.Empty;
int Dorder;
string eAlert = string.Empty;
foreach (DataRow dr in DT.Rows)
{
if (!DT.Columns.Contains("QuestionNo"))
{
lblMessage.Text = "QuestionNo ColumnName Mismatching";
lblMessage.ForeColor = System.Drawing.Color.Red;
grd_Questions.DataBind();
return;
}
else if (!DT.Columns.Contains("QuestionDesc"))
{
lblMessage.Text = "QuestionDesc ColumnName Mismatching";
lblMessage.ForeColor = System.Drawing.Color.Red;
grd_Questions.DataBind();
return;
}
else if (!DT.Columns.Contains("Type"))
{
lblMessage.Text = "Type ColumnName Mismatching";
lblMessage.ForeColor = System.Drawing.Color.Red;
grd_Questions.DataBind();
return;
}
else if (!DT.Columns.Contains("e-Alert"))
{
lblMessage.Text = "e-Alert ColumnName Mismatching";
lblMessage.ForeColor = System.Drawing.Color.Red;
grd_Questions.DataBind();
return;
}
else if (!DT.Columns.Contains("DisplayOrder"))
{
lblMessage.Text = "DisplayOrder ColumnName Mismatching";
lblMessage.ForeColor = System.Drawing.Color.Red;
grd_Questions.DataBind();
return;
}
else
{
PQ.updateQuestion();
}
}
这意味着您的数据源将是您的excel文件。在执行期间,逗号部分后面的“{0}”部分将替换为“filename”。这样您的excel文件将充当数据库
("Provider={0};Data Source={1};Extended Properties='Excel 12.0 Xml;HDR=YES;IMEX=1;'", Microsoft.ACE.OLEDB.12.0, filename)
这也会起作用