1

我正在创建一个应用程序,使用 SQL Server 2008 提供的文件流数据类型将 Excel 文件存储到数据库中,现在我一直在互联网上搜索使用 C# 中的存储过程插入它的最佳实践方法。

到目前为止,我已经创建了数据库结构和类,我现在需要做的是实际使用存储过程,我被卡住了,这是代码片段

OpenFileDialog ofd = new OpenFileDialog();
ofd.ShowDialog();

if (ofd.CheckFileExists)
{
    ....            
}

using (SqlConnection conn = new SqlConnection(Murel.Util.DBUtil.CONSTRING))
{
    try
    {
        conn.Open();

        using (SqlCommand cmd = new SqlCommand("items_insert", conn))
        {
           cmd.CommandType = CommandType.StoredProcedure;
           cmd.Parameters.Add(new SqlParameter("@name", "test"));
           cmd.Parameters.Add(new SqlParameter("@template", HELP));

           Guid id = (Guid)cmd.ExecuteScalar();

           return true;
        }
     }
     catch (Exception ex)
     {
        throw ex;
     }
     finally
     {
         conn.Close();
     }
  }

数据表由id一个唯一标识符、名称和模板组成varbinary(max),我已经设置了其他任何东西,我只需要知道要输入什么

cmd.Parameters.Add(new SqlParameter("@template", HELP));

谢谢,

大流士

4

1 回答 1

1

试试这个,应该可以

byte[] fileContent = new byte[ofd.PostedFile.ContentLength];
ofd.PostedFile.InputStream.Read(fileContent, 0,ofd.PostedFile.ContentLength);
command.Parameters.Add("@FileContent", SqlDbType.VarBinary, -1).Value = fileContent;

ofd 是您的文件上传控件

于 2012-06-11T09:53:41.560 回答