cwinform資料庫
❶ c# winform與資料庫的連接
在定義一個靜態的DBHelper類用於資料庫連接,
時直接類名點對象名就可以了。
public
static
string
connString="Data
Sourse=.;Initial
CataLog=資料庫名;User
Id=資料庫登陸名;
Pwd=資料庫登陸密碼";
public
static
sqlConnection
=new
SqlConnection(connString);
❷ winform不能訪問sql資料庫
你好,你是想問winform不能訪問sql資料庫是怎麼回事嗎?winform不能訪問sql資料庫是因為你的網路出現故障,導致winform無法對sql資料庫進行正常的遠程連接,所以才會出現winform不能訪問sql資料庫的情況。你只要更換一個正常的網路,將winform與sql資料庫進行遠程連接,這樣就可以正常訪問sql資料庫了。
❸ winform程序附帶資料庫打包發布問題
其實很簡單,你可以在你打包的時候,把你的資料庫添加進去,還有就是
比如你的資料庫就放在你程序運行的起始目錄。即在debug下,你安裝好你的系統好後,把資料庫放在安裝好的目錄即可解決哈!
有問題hi我哈!
❹ 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);//顯示圖片
❺ C# Winform 安裝怎麼包含資料庫
C#的c/s的winform,資料庫為sql2k,
應用程序包括如下文件:
1.exe,1.dll,1.jpg,1.xml,donetsetup.exe以及資料庫文件1.mdf,1.ldf(或資料庫安裝文件1.sql)。
打包要求:
(1)自動檢測是否安裝donet環境,如沒安裝,則提示自動安裝。
(2)安裝時自動安裝資料庫(附加mdf或運行1.sql)。
(3)在安裝界面上能自定義一些安裝圖片或提示。
安裝項目:
六個子項:文件系統、注冊表、文件類型、用戶界面、自定義操作、啟動條件。
其中我們在打包過程中經常要用到的有文件系統、注冊表、用戶界面和自定義操作。
文件系統:向應用程序文件夾、用戶的程序菜單、用戶桌面下輸出項目文件(四種類型:文件夾、項目輸出、文件和程序集),還可以創建快捷方式(一般是放在桌面或程序菜單中)文件系統編輯器表示目標計算機上的文件系統,使用該工具可以指定應用程序文件安裝的位置。在大多數情況下,希望將應用程序文件放在 Application Folder 中或在 Application Folder 下創建的子文件夾中。安裝在目標計算機上以後,來自 Application Folder 的文件將位於 Program Files\Manufacturer\ProctName文件夾中,其中 Manufacturer 是安裝 Visual Studio 時使用的公司名,而 ProctName 是用於部署項目的名稱。可以在安裝項目的屬性窗口中重寫這兩個設置。
注冊表:可以向注冊表中插入鍵,在安裝應用程序的同時創建注冊表項。
用戶界面:系統自動提供一組在安裝期間顯示的默認對話框。根據正在構建的項目的類型,所提供的這組對話框有所不同。使用用戶界面編輯器,可以將對話框重新排序或刪除對話框。在編輯器中顯示的對話框樹包含兩部分:安裝與管理員安裝。安裝部分包括終端用戶運行安裝程序時顯示的對話框,而管理員安裝部分包含系統管理員將安裝程序上傳到某個網路位置時顯示的對話框。如果想構建一個沒有用戶界面的安裝,只需在對話框樹上刪除安裝部分中的所有對話框。或者,可以從一組可用的模板將對話框添加到安裝項目中。
啟動條件:使用啟動條件編輯器來定義成功運行安裝所必須滿足的條件。例如,可以檢查特定版本的操作系統。如果用戶嘗試在一個不滿足條件的系統上安裝,安裝將中止。還可以配置啟動條件來搜索目標計算機上的某個特定文件、注冊表項或組件。在開始安裝時,Windows Installer 執行搜索和條件評估,並按啟動條件編輯器中所示的順序執行。
自定義操作:自定義操作提供了一種在安裝結束時執行任務的機制。例如,您可能希望在安裝應用程序之前先配置好資料庫,此時您可以用自定義操作來完成資料庫的創建。自定義操作構建為單獨的 .dll 或 .exe 文件,然後使用自定義操作編輯器添加到項目中,其中這些操作與不同的安裝階段有關。自定義操作編輯器包括幾個單獨的文件夾,用於放置執行 Install、Commit、Rollback 或 Uninstall 任務的二進制文件。
InstallerClass屬性:如果添加的自定義操作是繼承自Installer類(注意放在哪個文件夾下就要重載哪個相應的方法),該屬性設為True,否則該屬性設為False(注意:為False時要指定.dll文件的入口——EntryPoint屬性)。
卸載:可以在安裝應用程序中提供一個卸載的快捷方式,藉助於系統提供的卸載程序msiexec.exe(在c:\windows\system32目錄下),並把安裝程序項目的ProctCode屬性值賦給快捷方式的Arguments屬性(注意:在屬性值前加/x)
安裝程序類:System.Configuration.Install命名空間下
Installer類有四個可以重載的方法,分別是Install,Commit,Rollback,Uninstall。
分別對應於自定義操作中的四個文件夾:安裝、提交、回滾、卸載。
資料庫安裝:
1、 附加資料庫
2、 執行創建資料庫的Sql語句
3、 完全備份的資料庫文件還原
可以將能生成資料庫的的文件(分離的資料庫文件、Sql腳本文件或完全備份文件)部署到應用程序文件夾下,然後在重載的Install方法里加入生成資料庫代碼(注意:生成資料庫的代碼應該在調用基類的Install方法後)。
資料庫的卸載:首先刪除資料庫,再調用基類的Uninstall方法刪除應用程序文件夾里的文件(順序不能亂)。
幾個特殊點:
1、 文件系統中的AlawaysCreate屬性:本屬性可以指定為False,然後Condition屬性為空時相當於AlawaysCreate屬性為True(Transitive屬性必須為True才計算Condition屬性的值)。Condition 屬性可用於向安裝程序添加條件邏輯,例如,僅為特定的操作系統版本安裝某個文件。它還可以與文件搜索、注冊表搜索或組件搜索一起使用,以在找不到指定項時使安裝過程終止。可以是 Windows Installer 條件或屬性,Property 屬性中包含的值,文件、注冊表或組件搜索中的 Name 屬性,也可以是使用邏輯運算符的上述語句的組合。
2、 創建快捷方式(在程序中創建,可以有作為附加任務,根據用戶的選擇情況,有選擇的創建):
添加引用:COM 選項卡並選擇 Windows Script Host Object Model
創建對象:創建一個 WshShell 的實例對象,接著通過該對象的 CreateShortcut 方法來創建 IWshShortcut 介面的實例對象,傳遞給 CreateShortcut 方法的參數是將要創建的快捷方式的完整路徑(包括該快捷方式的名字)。
設置屬性:TargetPath、WorkingDirectory、WindowStyle、Description、IconLocation
生成快捷方式:調用 IWshShortcut.Save 方法生成快捷方式文件。
❻ 通過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 "成功與否字元串";
}
}
}
❼ Winform預防網路問題連不上資料庫程序崩潰
判斷是否可以連接的資料庫連接字元串設置timeout時間,設成個5秒或10秒。
什麼原因導致winform程序崩潰?
1、如果WinForm程序中使用了線程,而線程調用的代碼中會拋出異常,該異常沒有任何Try塊處理。就會導致程序從主線程中跳出,導致WinForm程序突然崩潰性關閉。
2、還有就是程序讀寫某些外部資源,比如資料庫、串口、並口、網路等。當這些資源發生堵塞或者出現問題,有可能會導致WinForm程序長時間處於等待狀態,程序就會類似於死機現象。
3、寫程序的時候,程序出現邏輯錯誤,導致死循環,或者線程死鎖。如果該程序是在主線程中,就會導致WinForm程序死機。
當然這些是較為常見的崩潰性問題,如果時間充足其實可以寫出很多。在這里就不一一列出了。
❽ winform怎樣連接資料庫
lianglin999(重樓)等級:#9樓 得分:8回復於:2010-03-28 21:25:32 使用SqlConnection類連接資料庫
//需要添加如下的命名空間
using System.Data.SqlClient;
protected void Button1_Click(object sender, EventArgs e)
{
//ConnectionString定義了連接字元串
string ConnectionString = "Data Source=. ; Initial Catalog=Pubs; User ID=sa";
//使用連接字元串構造一個SqlConnection實例
SqlConnection conn = new SqlConnection(ConnectionString);
try
{
//打開連接
conn.Open();
//如果當前狀態打開,在控制台輸出
if (conn.State == ConnectionState.Open)
{
Label1.Text = "當前資料庫已經連接!<br/>";
Label1.Text += "連接字元串為:" + conn.ConnectionString;
}
}
catch (SqlException ex)
{
Label1.Text = "當前資料庫已經失敗!<br/>";
Label1.Text += "失敗的原因是:" + ex.Message;
}
finally
{
//調用Close方法即使關閉連接
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
}
❾ winform如何連接資料庫
如需連接到本地SQL,請確保SQL服務正常啟動,然後執行如下代碼:
string con, sql;
/*Integrated Security=SSPI 這個表示以當前WINDOWS系統用戶身去登錄SQL SERVER伺服器,如果SQL SERVER伺服器不支持這種方式登錄時,就會出錯。
你可以使用SQL SERVER的用戶名和密碼進行登錄,如:
"Server=.;Database=YouDBName;User ID=sa;Password=密碼"
*/
con = "Server=.;Database=YouDBName;Integrated Security=SSPI";
sql = "select * from Test";
SqlConnection mycon = new SqlConnection(con);
mycon.Open();
SqlDataAdapter myda = new SqlDataAdapter(sql, con);
DataSet myds = new DataSet();
myda.Fill(myds, "Test");
dataGridView1.DataSource = myds.Tables["Test"];
❿ winform 資料庫問題
回答:
1、是這樣的,他也要裝mssql
2、你在你的電腦上改好,然後分離,將資料庫文件傳給他,他再導入資料庫文件就可以了。
access的性能比mssql要差很多。