當前位置:首頁 » 編程語言 » sql語句插入byte數據
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql語句插入byte數據

發布時間: 2023-01-05 10:18:36

Ⅰ C# winfrom 如何將byte 用sql語句加入資料庫

photo應該是一個一個添加的吧

下面是一個將圖片轉換為byte[],然後直接添加此參數

//實例化一個文件流,與寫入文件相關聯
FileStream fs = new FileStream(photoPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
//獲得位元組數組
byte[] photoData = new byte[fs.Length];
//開始寫入
fs.Read(photoData, 0, imgData.Length);
//關閉流
fs.Close();
……
//photo欄位在資料庫中為image類型(二進制數據)
cmd.Parameters.Add("@Photo", SqlDbType.Image).Value = photoData;
cmd.ExecuteNonQuery();

另外,你的sql語句也太復雜了,其實,即使是數字,在資料庫中也可以設置為varchar類型,如果數據是從textbox中添加的(textbox中的值是string類型),就不需要類型轉換了。

string sql = string.Format("insert into EM_Name values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}',{9},{10})", pm.No, pm.Name, pm.Rfidone, pm.Rfidtwo, pm.Rfidthree,pm.Photo, pm.Sex, pm.Phone, pm.Pichi, pm.Type,pm.Group);

Ⅱ 如何向postgreSQL中添加bytea類型的大對象數據

PostgreSQL二進制數據類型bytea保存2G數據ADO、ODBC等介面通帶參數化插入SQL語句傳二進制
某些介面、SQL語句進行參數綁定或者某些語言沒二進制類型或者介面兼容等原傳二進制數據
碰種情況必須客戶端二進制轉化定規則字元序列插入語句顯示轉換cast('字元序列' as bytea).
二進制轉化字元序列規則:
析每位元組其ASCII值031127255或39、92請位元組轉化3位八進制字元串前面加2反斜杠chr(39)表示//047. 其ascii值顯示字元變全部轉化八進制整字元串太浪費空間
二進制序列 chr(0)+'a'+'b'+chr(233)+chr(25)+'c'轉化字元序列:
//000ab//351//031c
傳候再顯示轉換 insert into table1 (aa) values (cast('//000ab//351//031c' as bytea))
二進制數據太傳,用||連接符連接起,:
insert into table1 (id,aa) values (1,cast('序列1' as bytea))
update table1 set aa=aa||cast('序列2' as bytea) where id=1

Ⅲ postgresql插入bytea類型數據,sql語句

PostgreSQL的二進制數據類型為bytea,可最多保存2G的數據。在ADO、ODBC等介面,可通過帶參數化的插入SQL語句上傳二進制。

然而在某些介面、SQL語句無法進行參數綁定,或者某些語言沒有二進制的類型,或者介面的不兼容等原因,常無法上傳二進制數據。

碰到這種情況下,必須在客戶端將二進制轉化為一定規則的字元序列,然後插入語句時,來個顯示轉換cast('字元序列' as bytea).

二進制轉化為字元序列的規則:

分析每個位元組,當其ASCII值在0到31,127到255,或為39、92,請將這位元組轉化為3位的八進制字元串,前面加上2個反斜杠,如chr(39)表示為//047. 其他ascii值為可顯示字元,不變,當然你也可全部轉化為八進制,但這樣整個字元串太長,浪費空間。

如二進制序列 chr(0)+'a'+'b'+chr(233)+chr(25)+'c'轉化為字元序列為:

//000ab//351//031c

上傳的時候再來個顯示轉換,如 insert into table1 (aa) values (cast('//000ab//351//031c' as bytea))

如果二進制數據太大,可分次上傳,用||連接符連接起來,如:

insert into table1 (id,aa) values (1,cast('序列1' as bytea))

update table1 set aa=aa||cast('序列2' as bytea) where id=1

Ⅳ byte數據怎麼寫到SQL server 2008

1可以直接用字元串的形式存儲,取值的時候注意轉換下就行。
2 數據太多,可以用二進制數類型image

Ⅳ sql語句怎麼添加一條記錄

sql語句中,添加記錄的語法為:insert into 表名 (col1,col2....coln)values(value1,value2.....valuen);

其中,如果你插入的每一列都是順序插入,無一缺漏的話,(col1,col2...coln)可以省略。

也就是上式也可以簡化為:insert into 表名values(value1,value2.....valuen);

看了你寫的sql代碼,問題出在insert into 的整體語句出現在了不該出現的地方,只需做一點小改動即可解決,如下圖:

解析:insert into語句需要在user表已經存在的情況下才可以使用。而你原來的語句中,將上圖2中的語句插入到了create table user的語句中,致使create table user 語句未能成功執行,所以才會報錯。

而將「INSERT INTO user(uid,tel) values('甲','3354986');」整條語句直接拿出來放在「ENGINE=InnoDB DEFAULT CHARSET=gbk;」後面之後,整個sql就可以順利執行了。

(5)sql語句插入byte數據擴展閱讀:

當mysql大批量插入數據的時候就會變的非常慢,mysql提高insert into 插入速度的方法有三種:

1、第一種插入提速方法:

如果資料庫中的數據已經很多(幾百萬條), 那麼可以加大mysql配置中的 bulk_insert_buffer_size,這個參數默認為8M

舉例:bulk_insert_buffer_size=100M;

2、第二種mysql插入提速方法:

改寫所有 insert into 語句為insertdelayed into

這個insert delayed不同之處在於:立即返回結果,後台進行處理插入。

3、第三個方法: 一次插入多條數據:

insert中插入多條數據,舉例:

insert into table values('11','11'),('22','22'),('33','33')...;

Ⅵ 如何使用sql語句向表中插入一行新數據

insert into 表名(列1,列2,列3)

values (值1,值2,值3)