C# 将映像插入ASP.NET中的本地SQL Server数据库

C# 将映像插入ASP.NET中的本地SQL Server数据库,c#,sql,asp.net,sql-server,C#,Sql,Asp.net,Sql Server,我想将FileUpload中的图像添加到ASP.NET中的本地SQL Server数据库中 我读过许多相同的问题,但它们对我没有帮助:( 所以,如果我只是简单地添加列名称-好的。但当我还想向数据库添加图像时,有一个错误: System.Data.dll中发生“System.Data.SqlClient.SqlException”类型的异常,但未在用户代码中处理 其他信息:关键字“Picture”附近的语法不正确 在我的本地数据库中,图片有一个图像类型。请帮助我。您需要捕获并处理它: int le

我想将
FileUpload
中的图像添加到ASP.NET中的本地SQL Server数据库中

我读过许多相同的问题,但它们对我没有帮助:(

所以,如果我只是简单地添加列
名称
-好的。但当我还想向数据库添加图像时,有一个错误:

System.Data.dll中发生“System.Data.SqlClient.SqlException”类型的异常,但未在用户代码中处理

其他信息:关键字“Picture”附近的语法不正确

在我的本地数据库中,
图片
有一个
图像
类型。请帮助我。

您需要捕获并处理它:

int length = FileUpload.PostedFile.ContentLength;
byte[] picSize = new byte[length];
HttpPostedFile uplImage= FileUpload.PostedFile;
uplImage.InputStream.Read(picSize, 0, length);

using (SqlConnection con = new SqlConnection(connectionString))
{
    SqlCommand com = new SqlCommand("INSERT INTO [Table] (Name, Picture) values (@Name, @Picture)", con);
    try
    {
        com.Parameters.AddWithValue("@Name", TextName.Text);
        com.Parameters.AddWithValue("@Picture", picSize);
        com.ExecuteNonQuery();
    }
    catch (SqlException ex)
    {
        for (int i = 0; i < ex.Errors.Count; i++)
        {
            errorMessages.Append("Index #" + i + "\n" +
                "Message: " + ex.Errors[i].Message + "\n" +
                "LineNumber: " + ex.Errors[i].LineNumber + "\n" +
                "Source: " + ex.Errors[i].Source + "\n" +
                "Procedure: " + ex.Errors[i].Procedure + "\n");
        }
        Console.WriteLine(errorMessages.ToString());
    }
}
int length=FileUpload.PostedFile.ContentLength;
字节[]picSize=新字节[长度];
HttpPostedFile upimage=FileUpload.PostedFile;
UpImage.InputStream.Read(picSize,0,长度);
使用(SqlConnection con=newsqlconnection(connectionString))
{
SqlCommand com=newsqlcommand(“插入到[表](名称,图片)值(@Name,@Picture)”,con);
尝试
{
com.Parameters.AddWithValue(“@Name”,TextName.Text);
com.Parameters.AddWithValue(“@Picture”,picSize);
com.ExecuteNonQuery();
}
catch(SqlException-ex)
{
对于(int i=0;i
您应该签出并停止使用
.AddWithValue()
-这可能会导致意外的结果…
image
将在SQL Server的未来版本中删除。避免在新的开发工作中使用此数据类型,并计划修改当前使用它们的应用程序。请改用
varbinary(max)
int length = FileUpload.PostedFile.ContentLength;
byte[] picSize = new byte[length];
HttpPostedFile uplImage= FileUpload.PostedFile;
uplImage.InputStream.Read(picSize, 0, length);

using (SqlConnection con = new SqlConnection(connectionString))
{
    SqlCommand com = new SqlCommand("INSERT INTO [Table] (Name, Picture) values (@Name, @Picture)", con);
    try
    {
        com.Parameters.AddWithValue("@Name", TextName.Text);
        com.Parameters.AddWithValue("@Picture", picSize);
        com.ExecuteNonQuery();
    }
    catch (SqlException ex)
    {
        for (int i = 0; i < ex.Errors.Count; i++)
        {
            errorMessages.Append("Index #" + i + "\n" +
                "Message: " + ex.Errors[i].Message + "\n" +
                "LineNumber: " + ex.Errors[i].LineNumber + "\n" +
                "Source: " + ex.Errors[i].Source + "\n" +
                "Procedure: " + ex.Errors[i].Procedure + "\n");
        }
        Console.WriteLine(errorMessages.ToString());
    }
}