asp.net 如何使用Razor将BLOB文件内容发送到SQL Server?

jv4diomz  于 2023-02-06  发布在  .NET
关注(0)|答案(1)|浏览(151)

正如问题所述,我在网页上有两个按钮。一个按钮在点击时打开一个文件对话框,允许用户从他们的文档中选择CSV。第二个按钮应该将文件内容和一些其他参数发送到Azure SQL Server。所有这些都在Azure Web服务中的ASP.NET Web App上运行。我的代码如下所示,我已经试过了,我不能告诉如果它是注册在所有,我没有得到输出到控制台,也没有记录在我的数据库中。任何帮助将不胜感激!(编辑:当然,sqlConnection中的“”是我的连接字符串所在的位置)
下面是我的尝试:

@using System.Data.SqlClient;
<form>
    <!-- HTML -->
    @{
        ViewData["Title"] = "Home Page";
    }

   
    <body>
        <input type="file" id="fileInput" style="display:none;" />
        <button id="selectFileButton">Select File</button>
        <label id="fileNameLabel" style="margin-left:10px;"></label>
        <button id="uploadButton">Upload</button>
    </body>

</form>

@section scripts {
    <script>
        // JavaScript
        document.querySelector("#selectFileButton").addEventListener("click", function () {
            document.querySelector("#fileInput").click();
        });

        document.querySelector("#fileInput").addEventListener("change", function () {
            var file = document.querySelector("#fileInput").files[0];
            document.querySelector("#fileNameLabel").innerText = file.name;
        });

        document.querySelector("#uploadButton").addEventListener("click", function () {
            var file = document.querySelector("#fileInput").files[0];
            if (file) {
                var reader = new FileReader();
                reader.onload = function () {
                    var parameters = {
                        data: reader.result,
                        fileName: file.name
                    };
                    Upload(parameters);
                };
                reader.readAsArrayBuffer(file);
            }
        });

      @{

    void Upload(string fileName, byte[] fileContent)
    {
          try
        {
            // Use a SqlCommandBuilder to send the data to SQL Server
            using (var sqlConnection = new SqlConnection(""))
            {           
                var sqlCommand = new SqlCommand("SET IDENTITY_INSERT BLOBS ON INSERT INTO BLOBS (BatchID, CustomerNumber, CSV, DataType) VALUES (@BatchID, @CustomerNumber, @CSV, @DataType) SET IDENTITY_INSERT BLOBS OFF", sqlConnection);
                sqlCommand.Parameters.AddWithValue("@CustomerNumber", "9002");
                sqlCommand.Parameters.AddWithValue("@CSV", fileContent);
                sqlCommand.Parameters.AddWithValue("@DataType", "TestASP");
                sqlCommand.Parameters.AddWithValue("@BatchID", 61);
                sqlCommand.ExecuteNonQuery();
            }
        }
        catch (Exception ex)
{
    Console.WriteLine("An error occurred while uploading to the database: " + ex.Message);
    
}
    }
}

      
    </script>
}
rqqzpn5f

rqqzpn5f1#

1.在Azure中创建SQL数据库。

1.在azure数据库中创建表-tblContent

使用下面的代码能够连接数据库,并能够插入数据到表中。

string readText = File.ReadAllText(filePath);

            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();

                using (SqlCommand command = new SqlCommand("INSERT INTO tblContent VALUES (@Id,@Content)", connection))
                {
                    command.Parameters.AddWithValue("@Id", 3);
                    command.Parameters.AddWithValue("@Content", readText);
                    command.ExecuteNonQuery();
                }
            }

相关问题