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 は FileUpload コントロールです

于 2012-06-11T09:53:41.560 に答える