當前位置:首頁 » 操作系統 » winform資料庫操作

winform資料庫操作

發布時間: 2022-07-15 06:40:29

1. 急!!!C#winform關於怎樣在一個窗體中操作兩個資料庫

grid 只能綁一個數據源,因此你可以寫個存儲過程 ,內部連接二個資料庫,進行關聯,再一次返回出來(一個datatable)

2. C#的winform如何訪問和操作sql2005資料庫

方法有倆:
其一:利用三層架構,在數據訪問層裡面寫與資料庫連接字元串,然後用Sqlconnetion對象接收一下就行了;其二:直接在項目中添加一個DBHelper類用來建立與資料庫的連接,在類中同樣也寫與資料庫連接字元串,然後用Sqlconnetion對象接收就好了!但前提是要先引用命名空間:using System.Data.SqlClient 備註:方法一的分層開發有點是有利於項目的維護,提高團隊協作!謝謝採納!

3. c# WinForm 關於資料庫的問題

你好,我分別對這幾個問題一一回答.
1)伺服器資源管理器很方便,比如它能直接拖動一些列到窗體,自動創建標簽文本框以及綁定。生成的是強類型的dataset。它一般自動生成了很多代碼。
記得看過一個國外的博客,關於entity Framework剛出來的時候,博主也是第一批嘗試此技術的人給朋友演示.net如何提升效率,在短短十幾分鍾就將資料庫連接通過你所列舉的1,3方式就很輕松建立了資料庫鏈接.這讓他朋友目瞪口呆,這項技術的產生大大推動了.net開發效率,如果用其他語言和平台可能要花費一個星期時間進行手工資料庫連接. 但是這個方式有弊端,它生成的強類型的dataset不僅不容易維護而且為了兼容產生很多不需要的代碼也就是我們說的無用代碼,所以在大型項目中不推薦這樣的方式進行.
2)通過解決方案添加和第一種方式是一樣的,雙擊這個資料庫同樣會出現在伺服器資源管理中.
3)gridview連接資料庫縮小了范圍,有針對性,但是同樣會產生那些無用代碼,也是在項目中不推薦的.
4)最後一個方法是大部分人採用的,不僅邏輯清晰,而且便於維護,更加靈活,但是對程序員要求較高,因為很多功能都要自己實現.
上面就是不同點和聯系了.
5)在一個項目中完全可以連接不同的資料庫,因為資料庫連接基本原則是盡量晚的連接,盡量早的斷開,所以很少存在一個程序中一個線程一直佔用一個資料庫的情況.你可以在不同時間段連接不同資料庫.
6)增刪改查是基本操作,執行這些操作遵循我說的第五條,程序會自動建立連接進行操作的.

4. 你好,我做winform項目,對資料庫操作後,只有bin文件夾下的資料庫文件改變,連接的資料庫文件並不改變

你是不是用的access資料庫,而且用的是相對路徑,那連接修改肯定就是bin下面debug或者release目錄下的access資料庫內容發生變化。
不知道是不是這個情況?

5. winform做界面,訪問區域網內的伺服器,伺服器端對資料庫進行操作

你說的是webservice吧,如果是webservice的話,這個是可以的,,但是你需要在自己的webservice裡面實現對資料庫的常規操作,然後winform可以添加對service的引用,和添加一個程序集的引用是差不多的,都是右鍵單擊,出現一個添加webservice引用的菜單

6. winform 操作 access資料庫

以下是按鈕單擊事件的代碼:

private void btnok_Click(object sender, EventArgs e)
{
string sqlText = "select * from users where(uname='"+txtname.Text+"' and upass='"+txtpass.Text.Trim()+"')";
string connstr = "此處寫連接字元串";//此處根據自己的access資料庫放的位置更改
System.Data.OleDb.OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter(sqlText,connstr);
System.Data.DataSet ds = new DataSet();
da.Fill(ds);
if (ds.Tables[0].Rows.Count == 0)
MessageBox.Show("驗證失敗!");
else
MessageBox.Show("驗證成功!");//此處可放置登陸成功後的處理代碼,比如實現窗體的轉向等操作。
}

7. c# winform 中對SQL 資料庫的修改

這個可以用entity
framework
可以建立一個實體資料庫
通過entity來操作資料庫
絕對不需要用Insert
不過貌似復雜程度比Insert高些
但是比較方便

8. 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";

9. C# winform程序在區域網下的資料庫操作需不需要webService等

你的程序將來有沒有可能會放到廣域網上運行,如果有這個可能的話,現在可以考慮加入wcf之類的技術做為數據中轉介面。如果不考慮這個,僅僅只在區域網內運行,那程序可以直接訪問訪問資料庫(當然,某些特定的功能可能還是需要用到webapi之類的東西,比如說大量的圖片上傳或瀏覽)

10. 通過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 "成功與否字元串";
}
}
}

熱點內容
sql資料庫的埠 發布:2025-01-22 12:20:02 瀏覽:362
安卓最終幻想8怎麼設置中文 發布:2025-01-22 12:19:23 瀏覽:651
怎麼查電腦配置和網路 發布:2025-01-22 12:19:16 瀏覽:586
linuxsnmp查看 發布:2025-01-22 12:17:49 瀏覽:37
安卓數據線怎麼接藍牙 發布:2025-01-22 12:07:29 瀏覽:229
扣扣賬號多少次密碼不正確會被封 發布:2025-01-22 12:07:19 瀏覽:400
python是32位還是64位 發布:2025-01-22 11:51:41 瀏覽:894
鈴聲多多緩存文件夾 發布:2025-01-22 11:51:39 瀏覽:724
java按鍵精靈 發布:2025-01-22 11:49:31 瀏覽:81
python配色 發布:2025-01-22 11:46:40 瀏覽:613