1
A
回答
1
這裏是我以前做的代碼。
根據需要,你會通過查看你的數據庫在Microsoft Management Studio中的設計使用表修改這個代碼:
public static void InsertImage(int inventoryID, int businessID, FileInfo file, string sqlConnection)
{
var list = new List<byte>();
using (var stream = file.Open(FileMode.Open))
{
var data = new byte[stream.Length];
stream.Read(data, 0, data.Length);
list.AddRange(data);
}
var bmp = System.Drawing.Image.FromFile(file.FullName, true);
using (var conn = new SqlConnection(sqlConnection))
{
conn.Open();
var imageId = -1;
var sqlSelect = "SELECT [ImageId] FROM [dbo].[ImageTable] WHERE [InventoryId][email protected];";
using (var cmd = new SqlCommand(sqlSelect, conn))
{
cmd.Parameters.Add("@InventoryId", System.Data.SqlDbType.Int).Value = inventoryID;
using (var r = cmd.ExecuteReader())
{
if (r.Read())
{
var o = r["ImageId"];
if ((o != null) && (o != DBNull.Value))
{
imageId = (int)o;
}
}
}
}
if (imageId == -1)
{
var sqlCmd = "INSERT INTO [dbo].[ImageTable] " +
"([InventoryId], [ImageFileName], [ImageSize], [ImageWidth], [ImageHeight], [ImageBytes]) " +
"VALUES " +
"(@InventoryId, @ImageFileName, @ImageSize, @ImageWidth, @ImageHeight, @ImageBytes); ";
using (var cmd = new SqlCommand(sqlCmd, conn))
{
cmd.Parameters.Add("@InventoryId", System.Data.SqlDbType.Int).Value = inventoryID;
cmd.Parameters.Add("@ImageFileName", System.Data.SqlDbType.VarChar, 255).Value = file.Name;
cmd.Parameters.Add("@ImageSize", System.Data.SqlDbType.Int).Value = list.Count;
cmd.Parameters.Add("@ImageWidth", System.Data.SqlDbType.SmallInt).Value = bmp.Width;
cmd.Parameters.Add("@ImageHeight", System.Data.SqlDbType.SmallInt).Value = bmp.Height;
cmd.Parameters.Add("@ImageBytes", System.Data.SqlDbType.VarBinary, -1).Value = list.ToArray();
cmd.ExecuteNonQuery();
}
}
}
}
要運行/測試代碼,我創造了這個helper方法:
public static string[] GetImages(string fullFolderPath, string searchPattern)
{
var list = new List<String>();
if (Directory.Exists(fullFolderPath))
{
if (String.IsNullOrEmpty(searchPattern))
{
searchPattern = "*.jpg";
}
var dir = new DirectoryInfo(fullFolderPath);
var files = dir.GetFiles(searchPattern);
for (int i = 0; i < files.Length; i++)
{
InsertImage(i + 1, 1, files[i], _sqlConnection);
list.Add(files[i].FullName);
}
}
return list.ToArray();
}
現在,從我的控制檯應用程序運行它是一個簡單的,單一的呼叫:
static void Main(string[] args)
{
var list = GetImages(@"C:\inetpub\wwwroot\Ads", "*.jpg");
}
相關問題
- 1. 將圖像插入到SQL Server中
- 2. 將表插入到SQL Server視圖中
- 3. SQL Server 2005插入圖像
- 4. 將從網址獲取的圖像插入到SQL Server中
- 5. 嘗試將Base64圖像插入到sql server數據庫中
- 6. 如何將圖像插入到sql server數據庫?
- 7. 如何將圖像插入到SQL Server數據庫表
- 8. 插入圖像到SQL
- 9. 將變量插入到SQL Server中
- 10. 用C#將插入到SQL Server中?
- 11. 將HTML數據插入到SQL Server中
- 12. 如何使用Java代碼在SQL Server 2008 R2中插入/檢索圖像?
- 13. 從C#代碼插入數據到SQL Server中
- 14. 將圖像插入到ASP.NET中的本地SQL Server數據庫中
- 15. 插入到SQL Server
- 16. 插入到SQL Server 2005中
- 17. 將圖像插入到FlowDocument
- 18. 如何插入圖像/斑點到SQL Server CE(就像sqlite)?
- 19. 如何將文件插入到SQL Server 2005中的圖像數據類型
- 20. 將SQL代碼插入到PHP/MySQL中的數據庫中
- 21. 的Java/SQL代碼插入到Postgres的
- 22. 將帶有圖像的Excel數據導入到SQL Server中
- 23. 將圖像插入國際象棋遊戲中的代碼c#
- 24. 從硬盤插入圖像到SQL Server的while循環
- 25. 將圖像插入到ggplot2
- 26. 將NAN(從C++代碼)寫入到sql server 2012中
- 27. 使用企業庫將數據插入到SQL Server數據庫的代碼
- 28. 插入PHP代碼到jQuery中的圖像src
- 29. SQL Server循環並插入到sql中
- 30. 如何將圖像放入sql server 2005