樓主你好:
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供賀蘭網(wǎng)站建設(shè)、賀蘭做網(wǎng)站、賀蘭網(wǎng)站設(shè)計(jì)、賀蘭網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、賀蘭企業(yè)網(wǎng)站模板建站服務(wù),十多年賀蘭做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
這種情況保存數(shù)據(jù)的時(shí)候并不是你想的那樣,保存起來的內(nèi)容并不是string類型的,因?yàn)槿绻阒苯颖4鎠tring的東西,肯定有很多特殊符號(hào)通不過的,你可以把文件中的內(nèi)容轉(zhuǎn)換成二進(jìn)制保存到數(shù)據(jù)庫中,你把你的content字段創(chuàng)建成byte類型。代碼可以這樣寫:
public void GetStringConvertValue(string strPath) {
//strPath就是你文件的路徑
if (File.Exists(strPath))
{
using (FileStream fs = File.Open(strPath, FileMode.Open))
{
int FileLength = Convert.ToInt32(fs.Length);
Byte[] FileByteArray = new Byte[FileLength];
fs.Read(FileByteArray, 0, FileLength);
//FileByteArray就是你要保存的二進(jìn)制內(nèi)容,這里即可以寫你的插入語句了。
//下面的代碼你可以看成從數(shù)據(jù)庫中讀取到FileByteArray,然后再轉(zhuǎn)換成文件ssss.txt
Stream stream = new MemoryStream(FileByteArray);
// 設(shè)置當(dāng)前流的位置為流的開始
stream.Seek(0, SeekOrigin.Begin);
// 把 byte[] 寫入文件
FileStream fsss = new FileStream(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ssss.txt"), FileMode.Create);
BinaryWriter bw = new BinaryWriter(fsss);
bw.Write(FileByteArray);
bw.Close();
fsss.Close();
}
}
}
讀取和保存寫在一起了,樓主自己拆分開就行了
希望對(duì)你有幫主,望采納,謝謝:)
1.選擇“開始”→“管理工具”→“數(shù)據(jù)源(ODBC)”選項(xiàng),顯示“ODBC數(shù)據(jù)源管理器”對(duì)話框。
2.切換到“系統(tǒng)DSN”選項(xiàng)卡,默認(rèn)情況下計(jì)算機(jī)中沒有部署和任何數(shù)據(jù)庫的連接。
3.單擊“添加”按鈕,顯示“創(chuàng)建新數(shù)據(jù)源”對(duì)話框。在“選擇您想為其安裝數(shù)據(jù)源的驅(qū)動(dòng)程序”列表中,選擇“SQL Server”選項(xiàng)。
4.單擊“完成”按鈕,啟動(dòng)創(chuàng)建新數(shù)據(jù)源向?qū)?,顯示“創(chuàng)建到SQL Server的新數(shù)據(jù)源”對(duì)話框。在“名稱”文本框中,鍵入數(shù)據(jù)源的名稱,在“服務(wù)器”列表中選擇目標(biāo)SQL Server 2008數(shù)據(jù)庫服務(wù)器,或者鍵入數(shù)據(jù)庫服務(wù)器的名稱。
5.單擊“下一步”按鈕,顯示下圖對(duì)話框,設(shè)置數(shù)據(jù)庫的身份驗(yàn)證方法。ODBC支持基于Windows NT模式的身份驗(yàn)證和基于SQL Server的驗(yàn)證模式。本例中選擇SQL Server驗(yàn)證模式。在“登錄ID”文本框中,鍵入數(shù)據(jù)庫管理員的名稱,在“密碼”文本框鍵入數(shù)據(jù)庫管理員的密碼。
6.單擊“下一步”按鈕,顯示下圖所示的對(duì)話框。設(shè)置連接的目標(biāo)SQL Server 2008數(shù)據(jù)庫服務(wù)器后,默認(rèn)連接的數(shù)據(jù)庫。默認(rèn)沒有選擇任何數(shù)據(jù)庫,其他選項(xiàng)使用默認(rèn)值即可。
7.單擊“下一步”設(shè)置連接到SQL Server 2008的數(shù)據(jù)庫參數(shù),建議使用默認(rèn)值。如果在部署SQL Server 2008的過程中,更改了默認(rèn)的數(shù)據(jù)庫參數(shù),建議在此對(duì)話框中設(shè)置和部署數(shù)據(jù)庫時(shí)使用相同的參數(shù)。
8.單擊“完成”按鈕,顯示創(chuàng)建ODBC數(shù)據(jù)源使用的參數(shù)。
9.單擊“測(cè)試數(shù)據(jù)源”按鈕,測(cè)試能夠連接到目標(biāo)數(shù)據(jù)庫,如果成功顯示“SQL Server ODBC 數(shù)據(jù)源測(cè)試”對(duì)話框,在“測(cè)試結(jié)果”列表中會(huì)顯示“測(cè)試成功”信息。
10.單擊兩次“確定”按鈕,完成ODBC數(shù)據(jù)源的創(chuàng)建,創(chuàng)建成功的數(shù)據(jù)源。應(yīng)用程序即可通過ODBC數(shù)據(jù)源連接到目標(biāo)數(shù)據(jù)庫。
1、導(dǎo)入.sql文件命令:mysql USE 數(shù)據(jù)庫名;mysql source d:/mysql.sql;
2、建立數(shù)據(jù)庫:mysql CREATE DATABASE 庫名;
3、建立數(shù)據(jù)表:mysql USE 庫名;mysql CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));
4、刪除數(shù)據(jù)庫:mysql DROP DATABASE 庫名;
5、刪除數(shù)據(jù)表:mysql DROP TABLE 表名;
6、將表中記錄清空:mysql DELETE FROM 表名;
7、往表中插入記錄:mysql INSERT INTO 表名 VALUES ("hyq","M");
8、更新表中數(shù)據(jù):mysql- UPDATE 表名 SET 字段名1='a',字段名2='b' WHERE 字段名3='c';
9、用文本方式將數(shù)據(jù)裝入數(shù)據(jù)表中:mysql load data local infile "d:/mysql.txt" into table 表名;
一種更正方式是使用“--tmpdir”選項(xiàng)啟動(dòng)mysqld,或在選項(xiàng)文件的[mysqld]部分增加該選項(xiàng)。例如,要想指定目錄C:emp,可使用:
[mysqld]
tmpdir=C:/temp
目錄C:emp必須存在,并有足夠的空間允許MySQL寫入它。請(qǐng)參見4.3.2節(jié),“使用選項(xiàng)文件”。
該錯(cuò)誤的另一個(gè)原因可能是許可事宜。請(qǐng)確認(rèn)MySQL服務(wù)器能夠?qū)懭雝mpdir目錄。
此外,還用使用perror檢查錯(cuò)誤代碼。服務(wù)器無法寫入表的一個(gè)原因是文件系統(tǒng)已滿。
shell perror 28
錯(cuò)誤代碼28:磁盤上無剩余空間
非root用戶運(yùn)行MySQL,當(dāng)MySQL配置比較高時(shí),MySQL運(yùn)行中生效的參數(shù)值與配置的值不一樣,所以具體分析一下MySQL是怎么調(diào)整這些參數(shù)值的。?這篇文章的目的是為了說明在系統(tǒng)資源不夠的情況下,MySQL 是怎么調(diào)整者三個(gè)參數(shù)的。說明此文涉及到三個(gè)參數(shù)open_files_limit、?max_connections、?table_open_cache。與這三個(gè)參數(shù)相關(guān)的系統(tǒng)資源是打開文件數(shù)限制,即文件描述符(fd)限制。系統(tǒng)參數(shù)與文件描述符的關(guān)系?-?max_connection??fd?: 每一個(gè)MySQL connection ? ? ?都需要一個(gè)文件描述符;-?table_open_cache??fd?打開一張表至少需要一個(gè) ? ? ?文件描述符,如打開MyISAM需要兩個(gè)fd?;- 系統(tǒng)最大打開文件數(shù)可以通過?ulimit -n查看。MySQL調(diào)整參數(shù)的方式
根據(jù)配置(三個(gè)參數(shù)的配置值或默認(rèn)值)計(jì)算?request_open_files(需要的文件描述符);
2.獲取有效的系統(tǒng)的限制值effective_open_files;? 3.根據(jù)effective_open_files調(diào)整request_open_files;? 4.根據(jù)調(diào)整后的request_open_files,計(jì)算實(shí)際生效的參數(shù)值(show variables?可查看參數(shù)值)。計(jì)算request_open_filesrequest_open_files有三個(gè)計(jì)算公式:1. ??? ?// 最大連接數(shù)+同時(shí)打開的表的最大數(shù)量+其他(各種日志等等)2. ? ? limit_1= max_connections+table_cache_size * 2 + 10;3.? ?4.???? ?//假設(shè)平均每個(gè)連接打開的表的數(shù)量(2-4)5. ? ? ?//源碼中是這么寫的:6. ? ? ?//We are trying to allocate no less than?7. ? ???// max_connections*5 file handles8. ? ? ?limit_2= max_connections * 5;9.? ?10. ? ?//mysql 默認(rèn)的默認(rèn)是500011. ? ?limit_3= open_files_limit ? open_files_limit : 5000;12. ?13. ? ? 所以open_files_limit期待的最低14. ? ? request_open_files= max(limit_1,limit_2,limit_3);計(jì)算effective_open_files:MySQL 的思路:
在有限值的的范圍內(nèi)MySQL?盡量將effective_open_files的值設(shè)大。
修正request_open_files
requested_open_files= min(effective_open_files,?request_open_files)
重新計(jì)算參數(shù)值
修正open_files_limit
open_files_limit?=?effective_open_files
修正max_connections
max_connections?根據(jù)?request_open_files?來做修正。1.? limit = requested_open_files - 10 - TABLE_OPEN_CACHE_MIN * 2;
如果配置的max_connections值大于limit,則將max_connections?的值修正為limit
其他情況下?max_connections?保留配置值
修正table_cache_size
table_cache_size?會(huì)根據(jù)?request_open_files?來做修正1. ??// mysql table_cache_size 最小值,4002. ? limit1 = TABLE_OPEN_CACHE_MIN3. ??// 根據(jù) requested_open_files 計(jì)算4. ? limit2 = (requested_open_files - 10 - max_connections) / 25. ? limit = max(limit1,limt2);
如果配置的table_cache_size?值大于limit,則將?table_cache_size?的值修正為limit
其他情況下table_cache_size?保留配置值
舉例
以下用例在非 root 用戶下運(yùn)行
參數(shù)設(shè)置:
//mysql
max_connections = 500
table_open_cache = 999
//ulimit -n
1500
生效的值:
open_files_limit = 1500? ?max_connections = min[(1500 - 10 - 800),500] = 500
table_open_cache = ( 1500 - 10 - 500) / 2 =495