Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.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
Sql 从.docx文件更新数据库_Sql_Xml_Docx - Fatal编程技术网

Sql 从.docx文件更新数据库

Sql 从.docx文件更新数据库,sql,xml,docx,Sql,Xml,Docx,我有一个人力资源网络应用程序,其中包括工作场所内的组织结构。 客户端正在发送一个带有工作区名称及其说明的.docx文件。我需要制作一个C#应用程序来从.docx文件中获取数据,并用它更新一些数据库表 我已经尝试过将.docx转换为XML,但我不知道如何从该XML中提取数据并将其插入数据库 有没有一种更简单的方法可以直接从.docx文件更新此数据库,或者我应该使用什么机制来查找XML文件中的数据。试试这个 下面是到数据库的连接字符串。您可以修改它以适合您的 <connectionStrin

我有一个人力资源网络应用程序,其中包括工作场所内的组织结构。 客户端正在发送一个带有工作区名称及其说明的.docx文件。我需要制作一个C#应用程序来从.docx文件中获取数据,并用它更新一些数据库表

我已经尝试过将.docx转换为XML,但我不知道如何从该XML中提取数据并将其插入数据库

有没有一种更简单的方法可以直接从.docx文件更新此数据库,或者我应该使用什么机制来查找XML文件中的数据。

试试这个

下面是到数据库的连接字符串。您可以修改它以适合您的

<connectionStrings>
<add name="conString" connectionString="Data Source=.\SQLEXPRESS;database=dbFiles; Integrated Security=true"/>
</connectionStrings >
VB.Net

Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As EventArgs)
  ' Read the file and convert it to Byte Array
  Dim filePath As String = FileUpload1.PostedFile.FileName
  Dim filename As String = Path.GetFileName(filePath)
  Dim ext As String = Path.GetExtension(filename)
  Dim contenttype As String = String.Empty

  'Set the contenttype based on File Extension
  Select Case ext
    Case ".doc"
      contenttype = "application/vnd.ms-word"
      Exit Select
    Case ".docx"
      contenttype = "application/vnd.ms-word"
      Exit Select
    Case ".xls"
      contenttype = "application/vnd.ms-excel"
      Exit Select
    Case ".xlsx"
      contenttype = "application/vnd.ms-excel"
      Exit Select
    Case ".jpg"
      contenttype = "image/jpg"
      Exit Select
    Case ".png"
      contenttype = "image/png"
      Exit Select
    Case ".gif"
      contenttype = "image/gif"
      Exit Select
    Case ".pdf"
      contenttype = "application/pdf"
      Exit Select
    End Select
    If contenttype <> String.Empty Then
      Dim fs As Stream = FileUpload1.PostedFile.InputStream
      Dim br As New BinaryReader(fs)
      Dim bytes As Byte() = br.ReadBytes(fs.Length)

      'insert the file into database
       Dim strQuery As String = "insert into tblFiles" _
       & "(Name, ContentType, Data)" _
       & " values (@Name, @ContentType, @Data)"
       Dim cmd As New SqlCommand(strQuery)
       cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = filename
       cmd.Parameters.Add("@ContentType", SqlDbType.VarChar).Value _
       = contenttype
       cmd.Parameters.Add("@Data", SqlDbType.Binary).Value = bytes
       InsertUpdateData(cmd)
       lblMessage.ForeColor = System.Drawing.Color.Green
       lblMessage.Text = "File Uploaded Successfully"
     Else
       lblMessage.ForeColor = System.Drawing.Color.Red
       lblMessage.Text = "File format not recognised." _
       & " Upload Image/Word/PDF/Excel formats"
     End If
  End Sub

尽管我非常欣赏您为OP提供详细答案所付出的努力,但这并不能回答他或她的问题:将docx整体上传到数据库中,从docx中提取数据并将数据插入数据库是两件截然不同的事情。这是一个好的开始
protected void btnUpload_Click(object sender, EventArgs e)

{
    // Read the file and convert it to Byte Array
    string filePath = FileUpload1.PostedFile.FileName;  
    string filename = Path.GetFileName(filePath);
    string ext = Path.GetExtension(filename);
    string contenttype = String.Empty;

    //Set the contenttype based on File Extension
    switch(ext)
    {
        case ".doc":
            contenttype = "application/vnd.ms-word";
            break;
        case ".docx":
            contenttype = "application/vnd.ms-word";
            break;
        case ".xls":
            contenttype = "application/vnd.ms-excel";
            break;
        case ".xlsx":
            contenttype = "application/vnd.ms-excel";
            break;
        case ".jpg":
            contenttype = "image/jpg";
            break;
        case ".png":
            contenttype = "image/png";
            break;
        case ".gif":
            contenttype = "image/gif";
            break;
        case ".pdf":
            contenttype = "application/pdf";
            break;
    }
    if (contenttype != String.Empty)
    {

        Stream fs = FileUpload1.PostedFile.InputStream;
        BinaryReader br = new BinaryReader(fs);
        Byte[] bytes = br.ReadBytes((Int32)fs.Length);

        //insert the file into database
        string strQuery = "insert into tblFiles(Name, ContentType, Data)" +
           " values (@Name, @ContentType, @Data)";
        SqlCommand cmd = new SqlCommand(strQuery);
        cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = filename;
        cmd.Parameters.Add("@ContentType", SqlDbType.VarChar).Value
          = contenttype;
        cmd.Parameters.Add("@Data", SqlDbType.Binary).Value = bytes;
        InsertUpdateData(cmd);
        lblMessage.ForeColor = System.Drawing.Color.Green;  
        lblMessage.Text = "File Uploaded Successfully";
    }
    else
    {
        lblMessage.ForeColor = System.Drawing.Color.Red;   
        lblMessage.Text = "File format not recognised." +
          " Upload Image/Word/PDF/Excel formats";
    }
}
Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As EventArgs)
  ' Read the file and convert it to Byte Array
  Dim filePath As String = FileUpload1.PostedFile.FileName
  Dim filename As String = Path.GetFileName(filePath)
  Dim ext As String = Path.GetExtension(filename)
  Dim contenttype As String = String.Empty

  'Set the contenttype based on File Extension
  Select Case ext
    Case ".doc"
      contenttype = "application/vnd.ms-word"
      Exit Select
    Case ".docx"
      contenttype = "application/vnd.ms-word"
      Exit Select
    Case ".xls"
      contenttype = "application/vnd.ms-excel"
      Exit Select
    Case ".xlsx"
      contenttype = "application/vnd.ms-excel"
      Exit Select
    Case ".jpg"
      contenttype = "image/jpg"
      Exit Select
    Case ".png"
      contenttype = "image/png"
      Exit Select
    Case ".gif"
      contenttype = "image/gif"
      Exit Select
    Case ".pdf"
      contenttype = "application/pdf"
      Exit Select
    End Select
    If contenttype <> String.Empty Then
      Dim fs As Stream = FileUpload1.PostedFile.InputStream
      Dim br As New BinaryReader(fs)
      Dim bytes As Byte() = br.ReadBytes(fs.Length)

      'insert the file into database
       Dim strQuery As String = "insert into tblFiles" _
       & "(Name, ContentType, Data)" _
       & " values (@Name, @ContentType, @Data)"
       Dim cmd As New SqlCommand(strQuery)
       cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = filename
       cmd.Parameters.Add("@ContentType", SqlDbType.VarChar).Value _
       = contenttype
       cmd.Parameters.Add("@Data", SqlDbType.Binary).Value = bytes
       InsertUpdateData(cmd)
       lblMessage.ForeColor = System.Drawing.Color.Green
       lblMessage.Text = "File Uploaded Successfully"
     Else
       lblMessage.ForeColor = System.Drawing.Color.Red
       lblMessage.Text = "File format not recognised." _
       & " Upload Image/Word/PDF/Excel formats"
     End If
  End Sub
private Boolean InsertUpdateData(SqlCommand cmd)
{
    String strConnString = System.Configuration.ConfigurationManager
    .ConnectionStrings["conString"].ConnectionString;
    SqlConnection con = new SqlConnection(strConnString);
    cmd.CommandType = CommandType.Text;
    cmd.Connection = con;
    try
    {
        con.Open();
        cmd.ExecuteNonQuery();
        return true;
    }
    catch (Exception ex)
    {
        Response.Write(ex.Message);
        return false;
    }
    finally
    {
        con.Close();
        con.Dispose();
    }
}