C# 如何将图像插入数据库?
如何将streamreader而不是Filestream reader放入数据库?下面是另一篇文章:C# 如何将图像插入数据库?,c#,asp.net,sql,C#,Asp.net,Sql,如何将streamreader而不是Filestream reader放入数据库?下面是另一篇文章: 但是,普遍的共识是,最好将映像存储在文件系统中。下面是另一篇文章: 但是,普遍的共识是最好将映像存储在文件系统中。可能的重复我已经回答了关于堆栈溢出的相同问题,这里:-[如何在sql server中存储映像?][1][1]:请参阅下面的链接:这样做很少是个好主意。我几乎总是建议将文件存储在文件系统中,并将路径存储在数据库中。这可以防止您的数据库过快变得过大,使备份、还原、复制等变得更容易。@
但是,普遍的共识是,最好将映像存储在文件系统中。下面是另一篇文章:
但是,普遍的共识是最好将映像存储在文件系统中。可能的重复我已经回答了关于堆栈溢出的相同问题,这里:-[如何在sql server中存储映像?][1][1]:请参阅下面的链接:这样做很少是个好主意。我几乎总是建议将文件存储在文件系统中,并将路径存储在数据库中。这可以防止您的数据库过快变得过大,使备份、还原、复制等变得更容易。@Caspar Kleijne-很好的观点-改为一条评论。可能重复的我已经回答了关于堆栈溢出的相同问题,这里:-[如何在sql server中存储映像?][1][1]:参考下面的链接:这样做很少是个好主意。我几乎总是建议将文件存储在文件系统中,并将路径存储在数据库中。这可以防止数据库过快变得过大,从而使备份、还原、复制等工作变得更容易。@Caspar Kleijne-好的观点-改为注释。如何在主机文件系统上存储映像?他会允许我吗?我不知道他是谁。您的应用程序应该对宿主环境中的子目录具有写访问权限。如何在宿主文件系统中存储映像?他会允许我吗?我不知道他是谁。您的应用程序应该对托管环境中的子目录具有写访问权限。
public void InsertAnImage(Guid i)
{
StringBuilder sb = new StringBuilder();
sb.Append("");
Stream stream = FileUpload1.FileContent;
StreamReader reader = new StreamReader(stream);
string myConnectionString = AllQuestionsPresented.connectionString;
using (SqlConnection conn = new SqlConnection(AllQuestionsPresented.connectionString))
{
// sample query with parameters to insert into db
string sqlQuery = "INSERT INTO [UserProfile] (UserID, Picture) Values (@userId, @picture)";
// conn is your db connection
SqlCommand command = new SqlCommand(sqlQuery, conn);
// creating parameters
SqlParameter paramId = new SqlParameter("@userId", SqlDbType.Int, 4);
paramId.Value = 45;
// you picture parameter, and assigning its the value
SqlParameter paramPicture = new SqlParameter("@picture", SqlDbType.Binary, myImage.Length);// red line here
paramPicture.Value = myImage;// red line here
// adding params to command
command.Parameters.Add(paramId);
command.Parameters.Add(paramPicture);
// then execute your command
command.ExecuteNonQuery();
}
}