我現在已經把資料庫和winform界面大概是已經做好了,然后兩者已經連接起來了,那我現在如果執行winform,那怎么把文字和圖片放到資料庫里面去呢?
uj5u.com熱心網友回復:
這個要做的事情太多,我就不回答了。樓下繼續。uj5u.com熱心網友回復:
可以說一點點,或者思路
uj5u.com熱心網友回復:
圖片放本地,記錄它的相對入徑,文字直接插入就行了uj5u.com熱心網友回復:
就是寫sql陳述句插入了,資料庫中也有image的資料型別。不用路徑的方式也可以將圖片轉換為byte[]存入
uj5u.com熱心網友回復:
不是要轉化二進制嘛然后才可以的嗎uj5u.com熱心網友回復:
一般來說, 圖片應該保存到一個路徑下面, 資料庫只保存其路徑。但你一定要保存到資料庫, 建議你使用 VARBINARY(MAX), 不要使用 image. image 是一種廢棄的格式。
下面的代碼親測通過:
USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL
DROP TABLE t
GO
CREATE TABLE t(
id INT IDENTITY(1,1) PRIMARY KEY,
img VARBINARY(MAX)
)
GO
using System;
using System.Data.SqlClient;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
namespace ConsoleApp3
{
class Program
{
static string connString = @"Data Source=(local);Initial Catalog=tempdb;Integrated Security=True";
static void Main(string[] args)
{
try
{
string path = "1.png";
byte[] byteArr = File.ReadAllBytes(path);
string sql = "insert into t(img) values(@img)";
using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddWithValue("@img", byteArr);
cmd.ExecuteNonQuery();
}
Console.WriteLine("Finished Insert.");
string sqlQuery = "select img from t where id=@id";
byte[] byteArrResult = null;
using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
SqlCommand cmd = new SqlCommand(sqlQuery, conn);
cmd.Parameters.AddWithValue("@id", 1);
byteArrResult = cmd.ExecuteScalar() as byte[];
}
path = "1_get.png";
SaveImgByByteArr(byteArrResult, path);
Console.WriteLine("Finished Get.");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.Read();
}
/// <summary>
/// 保存圖片
/// </summary>
/// <param name="byteArr"></param>
/// <param name="path"></param>
public static void SaveImgByByteArr(byte[] byteArr, string path)
{
using (MemoryStream ms = new MemoryStream(byteArr))
{
Bitmap bmp = new Bitmap(ms);
bmp.Save(path, ImageFormat.Png);
}
}
}
}
uj5u.com熱心網友回復:
這個就是個固定流程,建庫,連接,插入資料,沒啥好說的
uj5u.com熱心網友回復:
圖片 視頻 檔案,凡是大內容的都存在本地,小資訊(文本、數字)就插在資料庫uj5u.com熱心網友回復:
最早我是把圖片和檔案以二進制形式存盤在資料庫里,用byte[]進行讀寫轉換;后來改成資料庫存盤檔案本地路徑或者網路鏈接地址,當然如果檔案放在網路上的話,還要配套上傳與下載功能
uj5u.com熱心網友回復:
最早我是把圖片和檔案以二進制形式存盤在資料庫里,用byte[]進行讀寫轉換;
后來改成資料庫存盤檔案本地路徑或者網路鏈接地址,當然如果檔案放在網路上的話,還要配套上傳與下載功能
只要保存到本地某個指定檔案夾即可
uj5u.com熱心網友回復:
就是寫sql陳述句插入了,資料庫中也有image的資料型別。
不用路徑的方式也可以將圖片轉換為byte[]存入
請問有沒有遇到byte轉換為string出現錯誤?
uj5u.com熱心網友回復:
最早我是把圖片和檔案以二進制形式存盤在資料庫里,用byte[]進行讀寫轉換;
后來改成資料庫存盤檔案本地路徑或者網路鏈接地址,當然如果檔案放在網路上的話,還要配套上傳與下載功能
請問有沒有遇到byt轉換string的錯誤
uj5u.com熱心網友回復:
1、了解輸入控制元件類似textbox 中輸入值得獲取方式。資料庫匹配欄位型別。2、了解檔案獲取控制元件,資料庫對應欄位型別。然后再考慮業務邏輯。uj5u.com熱心網友回復:
最早我是把圖片和檔案以二進制形式存盤在資料庫里,用byte[]進行讀寫轉換;
后來改成資料庫存盤檔案本地路徑或者網路鏈接地址,當然如果檔案放在網路上的話,還要配套上傳與下載功能
請問有沒有遇到byt轉換string的錯誤
不明白你糾結啥?
我#6的代碼對你沒用嗎?
uj5u.com熱心網友回復:
最早我是把圖片和檔案以二進制形式存盤在資料庫里,用byte[]進行讀寫轉換;
后來改成資料庫存盤檔案本地路徑或者網路鏈接地址,當然如果檔案放在網路上的話,還要配套上傳與下載功能
請問有沒有遇到byt轉換string的錯誤
不明白你糾結啥?
我#6的代碼對你沒用嗎?
請問您會HTML和winform之間的呼叫嘛
uj5u.com熱心網友回復:
把檔案放到一個檔案夾,再獲取相對或者絕對路徑,把路徑寫入資料庫就可以了。呼叫時從資料庫獲取路徑,再獲取路徑檔案uj5u.com熱心網友回復:
最早我是把圖片和檔案以二進制形式存盤在資料庫里,用byte[]進行讀寫轉換;
后來改成資料庫存盤檔案本地路徑或者網路鏈接地址,當然如果檔案放在網路上的話,還要配套上傳與下載功能
請問有沒有遇到byt轉換string的錯誤
沒遇到過,不管圖片還是exe檔案讀寫都正常
uj5u.com熱心網友回復:
如果不考慮加密,直接建立文本類和圖片類,用資料遷移直接建立到資料庫就可以了。當然文本和圖片肯定是使用鏈接地址,二進制byte不考慮。如果需要加密,除了文本類圖片類,外加一個加密解密類,這個可以用在netstand里面。創建加密解密方法的介面。對鏈接進行加密解密的處理。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/68084.html
標籤:C#
上一篇:.aspx頁面和.cs頁面關聯
