Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在OLEDB连接字符串中,数据源是DATASOURCE={0}这是什么意思?_C#_Asp.net_Sql Server_Oledb - Fatal编程技术网

C# 在OLEDB连接字符串中,数据源是DATASOURCE={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

我有一个aspx页面,它允许您上载excel模板,并将模板中的内容提取到datatable中,然后在SQL Server数据库中更新。 使用OLEDB数据提供程序

Conn=new-OleDbConnectionstring.FormatProvider=Microsoft.ACE.OLEDB.12.0; 数据源={0};EXCEL2.0XML扩展属性;HDR=是;IMEX=1;',文件名

在上面的连接字符串中,数据源被指定为数据源={0},这是什么意思

这是上传按钮背后的代码

     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)
这也会起作用