A. C#winform與資料庫
在資料庫中,保存圖片的欄位為image類型。保存圖片和現實圖片其實是將圖片轉換成二進制數組進行傳遞的。 保存圖片(將圖片轉換為二進制數組): string fileName=openFileDialog1.FileName;//文件路徑 FileStream FStream = new FileStream(fileName, FileMode.Open, FileAccess.Read); BinaryReader BReader = new BinaryReader(FStream); byte[] byteImage = BReader.ReadBytes((int)FStream.Length); 顯示圖片: byte[] byteImage = (byte[])comm.ExecuteScalar();//獲取圖片的二進制數組數據 MemoryStream MStream = new MemoryStream(byteImage); pictureBox2.Image = Image.FromStream(MStream);//顯示圖片
B. 誰能給個C# winform連接資料庫的例子,並且操作查詢返回一些資料庫,可以顯示出來
以連接sql server資料庫為例,保證你能做到
1.首先添加引用。在項目中右鍵添加引用,然後找到.net,找到System.data。然後在後台引用的地方輸入using System.DataSqlClient;
2我只講後台,前台你看著做啊。看代碼。我會以最簡單最易理解的方式給你講解。懂了後你可以自己編寫
Private void ToData()
{
SqlConnection conn = new SqlConnection();//創建連接對象
conn.ConnectionString = "data source=(要連接的資料庫的伺服器的IP,如果是本機的話可以用.);initial catalog=(資料庫名稱);user id=(用戶名);pwd=(密碼)";//連接字元串
conn.Open();//打開資料庫
SqlCommand cmd = new SqlCommand();//創建命令對象
cmd.Connection = conn;
string sql ="select * from 表 where 條件";//創建sql語句
cmd.CommandText = sql;
SqlDataReader sd = cmd.ExecuteReader();//執行命令
if (sd.Read())
{
MessageBox.Show("有次用戶")
}
}
C. 通過c# winform程序如何對資料庫進行備份和還原
WinForm c# 備份 還原 資料庫, 其實是個非常簡單的問題,一個Form,一個Button,一個OpenFileDialog,一個SaveFileDialog.下面給出備份與還原類
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Collections;
using System.Windows.Forms;
namespace 我的備份與還原
{
class 備份與還原資料庫
{
static string connectionString = "server=.;database=master;uid=sa;pwd=";
SqlConnection conn = new SqlConnection(connectionString);
/// <summary>
/// 備份指定的資料庫文件
/// </summary>
/// <param name="databasename">要還原的資料庫</param>
/// <returns></returns>
public bool BackUpDataBase( string databasefile)
{
if (!File.Exists(databasefile))
{
}
//還原的資料庫MyDataBase
string sql = "BACKUP DATABASE " + "MyDataBase" + " TO DISK = '" + databasefile + ".bak' ";
conn.Open();
SqlCommand comm = new SqlCommand(sql, conn);
comm.CommandType = CommandType.Text;
try
{
comm.ExecuteNonQuery();
}
catch (Exception err)
{
string str = err.Message;
conn.Close();
return false;
}
conn.Close();//關閉資料庫連接
return true;
}
//以下是還原資料庫,稍微麻煩些,要關閉所有與當前資料庫相連的連接
//------------------------------------------------------------------------------------------
public string RestoreDatabase(string backfile)
{
///殺死原來所有的資料庫連接進程
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=.;Initial Catalog=master;User ID=sa;pwd =";
conn.Open();
string sql = "SELECT spid FROM sysprocesses ,sysdatabases WHERE sysprocesses.dbid=sysdatabases.dbid AND sysdatabases.Name='" +
"MyDataBase"+ "'";
SqlCommand cmd1 = new SqlCommand(sql, conn);
SqlDataReader dr;
ArrayList list = new ArrayList();
try
{
dr = cmd1.ExecuteReader();
while (dr.Read())
{
list.Add(dr.GetInt16(0));
}
dr.Close();
}
catch (SqlException eee)
{
MessageBox.Show(eee.ToString());
}
finally
{
conn.Close();
}
for (int i = 0; i < list.Count; i++)
{
conn.Open();
cmd1 = new SqlCommand(string.Format("KILL {0}", list[i].ToString()), conn);
cmd1.ExecuteNonQuery();
conn.Close();
MessageBox.Show("系統已經清除的資料庫線程: " + list[i].ToString() + "\r\n正在還原資料庫!");
}
//這里一定要是master資料庫,而不能是要還原的資料庫,因為這樣便變成了有其它進程
//佔用了資料庫。
string constr = @"Data Source=.;Initial Catalog=master;User ID=sa;pwd =";
string database = MyDataBase;
string path = backfile;
string BACKUP = String.Format("RESTORE DATABASE {0} FROM DISK = '{1}'", database, path);
SqlConnection con = new SqlConnection(constr);
SqlCommand cmd = new SqlCommand(BACKUP, con);
con.Open();
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("還原成功,點擊退出系統!");
Application.Exit();
}
catch (SqlException ee)
{
//throw(ee);
//MessageBox.Show("還原失敗");
MessageBox.Show(ee.ToString());
}
finally
{
con.Close();
}
return "成功與否字元串";
}
}
}
D. c# winform 如何批量更新資料庫數據
在處理百萬級的數據方面,也不一定需要存儲過程,用C#一樣可以;ADO.NET提供了常用對象即可解決,就是數據適配器,在處理海量數據的時候,表現還是可圈可點的。先指定參數,接著一個循環,例: for (int i = 0; i < 100; i++)
{
dataset.Tables[0].Rows[i].BeginEdit();
dataset.Tables[0].Rows[i]["time"] = "2222-22-22 22:22:22";
dataset.Tables[0].Rows[i]["value"] = 100;
dataset.Tables[0].Rows[i]["id"] = "ID"+(i+10000);
dataset.Tables[0].Rows[i].EndEdit();
}接著一次提交更新就OK了數據適配器.Update(dataset.Tables[0]);然後釋放資源,把數據集合適配器的資源都釋放掉,連接也返回池中。 dataset.Tables[0].Clear();
適配器.Dispose
dataset.Dispose要注意的是,你在取記錄填充到數據集裡面的時候,不要一次去提取100萬條,那樣你的資料庫引擎會不堪重負的。要根據你的硬體配置,每次提取適量的數據,如果配置不是很高,一次提取個500-600就行了,這樣很快就能把數據在循環中處理完畢而不是卡到CPU暴漲直到死機。
E. 求C#winform 資料庫類(連接和增刪改查)和在窗口中的調用代碼
C# 中分為三層,在數據訪問層中寫增刪查改的代碼和專門連接資料庫的一個類寫Connection;在窗口中調用的代碼一般寫在表示層。
F. Winform連接遠程資料庫
遠程連接有點復雜,首先要保證客戶端與SQL伺服器連接
步驟:
一 看ping 伺服器IP能否ping通。
這個實際上是看和遠程sql server 2000伺服器的物理連接是否存在。如果不行,請檢查網路,查 看配
置,當然得確保遠程sql server 2000伺服器的IP拼寫正確。
二 在Dos或命令行下輸入telnet 伺服器IP 埠,看能否連通。
如telnet 202.114.100.100 1433
通常埠值是1433,因為1433是sql server 2000的對於Tcp/IP的默認偵聽埠。如果有問題,通常這
一步會出問題。通常的提示是「……無法打開連接,連接 失敗"。
如果這一步有問題,應該檢查以下選項。
1 檢查遠程伺服器是否啟動了sql server 2000服務。如果沒有,則啟動。
2 檢查伺服器端有沒啟用Tcp/IP協議,因為遠程連接(通過網際網路)需要靠這個協檢查方法是,在服
務器上打開開始菜單->程序->Microsoft SQL Server->伺服器網路實用工具,看啟用的協議里
是否有tcp/ip協議,如果沒有,則啟用它。
3 檢查伺服器的tcp/ip埠是否配置為1433埠。仍然在伺服器網路實用工具里查看啟用協議裡面的
tcp/ip的屬性,確保默認埠為1433,並且隱藏伺服器復選框 沒有勾上。
事實上,如果默認埠被修改,也是可以的,但是在客戶端做telnet測試時,寫伺服器埠號時必須
與伺服器配置的埠號保持一致。如果隱藏伺服器復選框被勾 選,則意味著客戶端無法通過枚
舉伺服器來看到這台伺服器,起到了保護的作用, 但不影響連接,但是Tcp/ip協議的默認埠將被
隱式修改為2433,在客戶端連接 時必須作相應的改變。
4 如果伺服器端操作系統打過sp2補丁,則要對windows防火牆作一定的配置,要對它開放1433埠,
通常在測試時可以直接關掉windows防火牆(其他的防火牆也 關掉最好)。
5 檢查伺服器是否在1433埠偵聽。如果伺服器沒有在tcp連接的1433埠偵聽,則是連接不上的。檢
查方法是在伺服器的dos或命令行下面輸入
netstat -a -n 或者是netstat -an,在結果列表裡看是否有類似 tcp 127.0.0.1 1433 listening
的項。如果沒有,則通常需要給sql server 2000打上至少sp3的補丁。其實在伺服器端啟動查詢分
析器,輸入 select @@version 執行後可以看到版本號,版本號在8.0.2039以下的都需要打補丁。
如果以上都沒問題,這時你再做telnet 伺服器ip 1433 測試,將會看到屏幕一 閃之後游標在左上
角不停閃動。恭喜你,你馬上可以開始在企業管理器或查詢分析 器連接了。
三 檢查客戶端設置
程序->Microsoft SQL Server -> 客戶端網路使用工具。像在伺服器網路實用工具里一樣,確保客 戶端
tcp/ip協議啟用,並且默認埠為1433(或其他埠,與服 務器端保持一致就行)。
四 在企業管理器里或查詢那分析器連接測試
企業管理器->右鍵SQlserver組->新建sqlserver注冊->下一步->寫入遠程IP-> 下一步->選Sqlserver登陸-
>下一步->寫入登陸名與密碼(sa,password)->下一 步->下一步->完成 查詢分析器->文件->連接->寫
入遠程IP->寫入登錄名和密碼(sa,password)->確 定
通常建議在查詢分析器里做,因為默認情況下,通過企業管理器注冊另外一台SQL Server的超時設置
是4秒,而查詢分析器是15秒。
修改默認連接超時的方法:
企業管理器->工具->選項->在彈出的"SQL Server企業管理器屬性"窗口中,點擊"高級"選項卡->連接設
置->在登錄超時(秒) 後面的框里輸入一個較大的數字
查詢分析器->工具->選項->連接->在登錄超時(秒) 後面的框里輸入一個較大的數 字
通常就可以連通了,如果提示錯誤,則進入下一步。
五 錯誤產生的原因通常是由於SQL Server使用了"僅 Windows"的身份驗證方式,因 此用戶無法使 用
SQL Server的登錄帳戶(如 sa )進行連接。解決方法如下所示:
1 在伺服器端使用企業管理器,並且選擇"使用 Windows 身份驗證"連接上 SQL Server。
2 展開"SQL Server組",滑鼠右鍵點擊SQL Server伺服器的名稱,選擇"屬性",再選擇"安全性"選項卡。
3 在"身份驗證"下,選擇"SQL Server和 Windows "。
4 重新啟動SQL Server服務。(在dos或命令行下面net stop mssqlserver停止服務, net start mssqlserver啟
動服務,也是一種快捷的方法)。
附註:在連接本地伺服器時,通常使用的是命名管道協議(在伺服器網路實用工具里可以看到啟用的
協議有這個),默認埠是445,因此在本地能連通是不能說明什麼問題的,連接遠程伺服器是完全
不同的協議)
//如果是在遠程連接sql2000,採用下面連接字元串
// string source = "database=Northwind;Server=192.168.1.181,1433;User ID=sa;Password=sa;Persist Security Info=True";
G. C# winform 外網 mySQL資料庫
server=後面不要帶http://,只寫域名就可以了。
H. c# winform與資料庫的連接
在定義一個靜態的DBHelper類用於資料庫連接,
時直接類名點對象名就可以了。
public static string connString="Data Sourse=.;Initial CataLog=資料庫名;User Id=資料庫登陸名; Pwd=資料庫登陸密碼";
public static SqlConnection=new SqlConnection(connString);
I. 關於winform程序打包的資料庫問題
其實很簡單
,你可以在你打包的時候,把你的資料庫添加進去,還有就是
比如你的資料庫就放在你程序運行的起始目錄。即在debug下,你安裝好你的系統好後,把資料庫放在安裝好的目錄即可解決哈!
有問題hi我哈!
J. net winform 開發 資料庫linux Oracle,基於互聯網,用戶五千,數據單表上億,你如何搞定
只要你代碼編寫精簡、效率高,流程設計合理,無錯誤。剩下的就看你伺服器的配置資源和網路帶寬,如果滿足要求,我想就算有10萬用戶,100億條數據也無所謂的。因為你的程序可以高效的運作,所以再多的數據,再多的連接也無所畏懼啊。