C#操作數(shù)據(jù)庫(kù)總結(jié)(vs2005+sql2005)
開(kāi)發(fā)工具:Microsoft Visual Studio 2005
數(shù)據(jù)庫(kù):Microsoft SQL Server 2005
說(shuō)明:這里建立的數(shù)據(jù)庫(kù)名為Demo,有一個(gè)學(xué)生表Student,為操作方便起見(jiàn),我只添加兩個(gè)字段:studentnum和studentname.
一、SQL語(yǔ)句:
--create database Demo
use Demo
create table Student
(
studentnum char(14) primary key,
studentname varchar(30) not null
)
insert into Student values('20041000010201','張揚(yáng)')
二、代碼:
1.引入名稱空間:using System.Data.SqlClient;
2.定義連接字符串,連接對(duì)象,命令對(duì)象:
private String connectionstr;
private SqlConnection connection;
private SqlCommand command;
3.在構(gòu)造函數(shù)中初始化連接字符串,連接對(duì)象,命令對(duì)象
(1)初始化連接字符串:
方式① connectionstr="server=localhost;uid=sa;pwd=123456;database=Demo";
方式② connectionstr="server=127.0.0.1";Integrade Security=SSPI;database=Demo";
其中,SIMS是我要連接的數(shù)據(jù)庫(kù)名.(1)中的uid 和pwd是你登錄數(shù)據(jù)庫(kù)的登錄名和密碼
注:這種連接是連接本地的數(shù)據(jù)庫(kù),若要連接局域網(wǎng)內(nèi)其它機(jī)子上的數(shù)據(jù)庫(kù),可將方式①的"server=localhost;"改為"server=數(shù)據(jù)庫(kù)所在機(jī)子的IP;"
// 連接字符串:String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=product.mdb";
// 建立連接:OleDbConnection connection = new OleDbConnection(connectionString);
// 使用OleDbCommand類來(lái)執(zhí)行Sql語(yǔ)句:
// OleDbCommand cmd = new OleDbCommand(sql, connection);
// connection.Open();
// cmd.ExecuteNonQuery();
#endregion
#region 連接字符串
//string strcon = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\程序書(shū)籍軟件\c#程序代碼\access數(shù)據(jù)庫(kù)操作\addressList.mdb"; //絕對(duì)路徑
// string strcon = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Environment.CurrentDirectory+"\\addressList.mdb"; //相對(duì)路徑
(2)初始化連接對(duì)象
connection = new SqlConnection(connectionstr);
(3)初始化命令對(duì)象
command =new SqlCommand();
command .Connection =connection ;
4.操作數(shù)據(jù)庫(kù)中的數(shù)據(jù)
(1)查詢數(shù)據(jù)庫(kù)中的數(shù)據(jù)
方法一:
string snum=tBstudentnum .Text .Trim ();
string str = "select * from Student where studentnum='" + snum + "'";
command .CommandText =str;
connection.Open();
if (command.ExecuteScalar() == null)
{
MessageBox.Show("您輸入的學(xué)號(hào)對(duì)應(yīng)的學(xué)生不存在!", "錯(cuò)誤", MessageBoxButtons.OK,MessageBoxIcon.Error);
}
else
{
SqlDataReader sdr = command.ExecuteReader();
while (sdr.Read())
{
tBstudentnum .Text = sdr["studentnum"].ToString();
tBstudentname.Text = sdr["studentname"].ToString();
}
sdr.Close();
}
connection.Close();
方法二:
string snum=tBstudentnum .Text .Trim ();
string str = "select * from Student where studentnum='" + snum + "'";
command .CommandText =str;
connection.Open();
if (command.ExecuteScalar() == null)
{
MessageBox.Show("您輸入的學(xué)號(hào)對(duì)應(yīng)的學(xué)生不存在!", "錯(cuò)誤", MessageBoxButtons.OK,MessageBoxIcon.Error);
}
else
{
SqlDataAdapter sda = new SqlDataAdapter(str,connection );
DataSet ds = new DataSet();
sda.Fill(ds, "Student");
DataTable dt = ds.Tables["Student"];
tBstudentnum.Text = dt.Rows[0]["studentnum"].ToString();
tBstudentname.Text = dt.Rows[0]["studentname"].ToString();
}
connection.Close();
(2)向數(shù)據(jù)庫(kù)中添加數(shù)據(jù)
方法一:
string snum = tBstudentnum.Text.Trim ();
string sname = tBstudentname.Text.Trim();
if (snum == "" || sname == "")
{
MessageBox.Show("學(xué)生學(xué)號(hào)或姓名不能為空!", "錯(cuò)誤", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
else
{
string insertstr="insert into Student values('"+snum +"','"+sname +"')";
command.CommandText = insertstr;
connection.Open();
command.ExecuteNonQuery();
MessageBox.Show("學(xué)生添加成功!", "提示", MessageBoxButtons.OK,
MessageBoxIcon.Information);
connection.Close();
}
方法二:
string str = "select * from Student";
string insertstr = "insert into Student values('" + snum + "','" + sname + "')";
SqlDataAdapter sda = new SqlDataAdapter(str, connection);
DataSet ds = new DataSet();
sda.Fill(ds, "Student");
DataTable dt = ds.Tables["Student"];
DataRow dr = dt.NewRow();
dr["studentnum"] = snum;
dr["studentname"] = sname;
dt.Rows.Add(dr);
sda.InsertCommand = new SqlCommand(insertstr, connection);
sda.Update(ds, "Student");
MessageBox.Show("學(xué)生添加成功!", "提示", MessageBoxButtons.OK,
MessageBoxIcon.Information);
(3)修改數(shù)據(jù)庫(kù)中的數(shù)據(jù)
方法一:
string snum = tBstudentnum.Text.Trim();
string sname = tBstudentname.Text.Trim();
if (snum == "" || sname == "")
{
MessageBox.Show("學(xué)生學(xué)號(hào)或姓名不能為空!", "錯(cuò)誤", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
else
{
string modifystr = "update Student set studentname='" + sname +
"' where studentnum='" + snum + "'";
command.CommandText = modifystr;
connection.Open();
command.ExecuteNonQuery();
MessageBox.Show("學(xué)生的姓名修改成功!", "提示", MessageBoxButtons.OK,
MessageBoxIcon.Information );
connection.Close();
方法二:
string snum = tBstudentnum.Text.Trim();
string sname = tBstudentname.Text.Trim();
if (snum == "" || sname == "")
{
MessageBox.Show("學(xué)生學(xué)號(hào)或姓名不能為空!", "錯(cuò)誤", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
else
{
string str = "select * from Student where studentnum='" + snum + "'"; ;
string updatestr = "update Student set studentname='" + sname +
"' where studentnum='" + snum + "'";
SqlDataAdapter sda = new SqlDataAdapter(str, connection);
DataSet ds = new DataSet();
sda.Fill(ds, "Student");
DataTable dt = ds.Tables["Student"];
dt.Rows[0]["studentname"] = sname;
sda.UpdateCommand = new SqlCommand(updatestr , connection);
sda.Update(ds, "Student");
MessageBox.Show("學(xué)生姓名修改成功!", "提示", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
(4)刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)
方法一:
string snum = tBstudentnum.Text.Trim();
if (snum == "")
{
MessageBox.Show("學(xué)生學(xué)號(hào)不能為空!", "錯(cuò)誤", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
else
{
string str = "select * from Student where studentnum='" + snum + "'";
string deletestr = "delete from Student where studentnum='" + snum + "'";
command.CommandText =str ;
connection.Open();
if (command.ExecuteScalar() == null)
{
MessageBox.Show("此學(xué)號(hào)對(duì)應(yīng)的學(xué)生不存在!", "錯(cuò)誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
command.CommandText = deletestr;
command.ExecuteNonQuery();
MessageBox.Show("學(xué)生的信息刪除成功!", "提示", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
connection.Close();
方二:
string str = "select * from Student where studentnum='" + snum + "'";
string deletestr = "delete from Student where studentnum='" + snum + "'";
SqlDataAdapter sda = new SqlDataAdapter(str, connection);
DataSet ds = new DataSet();
sda.Fill(ds, "Student");
DataTable dt = ds.Tables["Student"];
if (dt.Rows.Count > 0)
{
dt.Rows[0].Delete();
sda.DeleteCommand = new SqlCommand(deletestr, connection);
sda.Update(ds, "Student");
MessageBox.Show("學(xué)生信息刪除成功!", "提示", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
else
{
MessageBox.Show("此學(xué)號(hào)對(duì)應(yīng)的學(xué)生不存在!", "錯(cuò)誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
- C#連接db2數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法
- 深入分析C#連接Oracle數(shù)據(jù)庫(kù)的連接字符串詳解
- C#保存圖片到數(shù)據(jù)庫(kù)并讀取顯示圖片的方法
- c#數(shù)據(jù)庫(kù)與TXT導(dǎo)入導(dǎo)出的實(shí)例
- C#訪問(wèn)PostGreSQL數(shù)據(jù)庫(kù)的方法
- C#連接Oracle數(shù)據(jù)庫(kù)的實(shí)例方法
- C#數(shù)據(jù)庫(kù)操作小結(jié)
- C#中使用SQLite數(shù)據(jù)庫(kù)的方法介紹
- c# 獲取數(shù)據(jù)庫(kù)中所有表名稱的方法
- 淺析C# web訪問(wèn)mysql數(shù)據(jù)庫(kù)-整理歸納總結(jié)
相關(guān)文章
C# 字符串string和內(nèi)存流MemoryStream及比特?cái)?shù)組byte[]之間相互轉(zhuǎn)換
本文主要介紹字符串string和內(nèi)存流MemoryStream及比特?cái)?shù)組byte[]之間相互轉(zhuǎn)換的方法,需要的小伙伴可以參考一下。2016-05-05
C#通過(guò)DataSet讀寫(xiě)xml文件的方法
這篇文章主要介紹了C#通過(guò)DataSet讀寫(xiě)xml文件的方法,涉及C#使用DataSet操作XML的相關(guān)技巧,方法簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-05-05
C#中Winform窗體Form的關(guān)閉按鈕變灰色的方法
這篇文章主要介紹了C#中Winform窗體Form的關(guān)閉按鈕變灰色的方法,對(duì)于C#程序界面的設(shè)計(jì)有一定的借鑒價(jià)值,需要的朋友可以參考下2014-08-08
C#控件picturebox實(shí)現(xiàn)圖像拖拽和縮放
這篇文章主要為大家詳細(xì)介紹了C#控件picturebox實(shí)現(xiàn)圖像拖拽和縮放,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09
C#導(dǎo)出數(shù)據(jù)到excel如何提升性能
這篇文章主要介紹了C#導(dǎo)出數(shù)據(jù)到excel如何提升性能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
C#實(shí)現(xiàn)Json轉(zhuǎn)DataTable并導(dǎo)出Excel的方法示例
這篇文章主要介紹了C#實(shí)現(xiàn)Json轉(zhuǎn)DataTable并導(dǎo)出Excel的方法,結(jié)合實(shí)例形式總結(jié)分析了Json轉(zhuǎn)換DataTable,以及DataTable導(dǎo)出Excel相關(guān)操作技巧,需要的朋友可以參考下2019-02-02
C#使用iTextSharp從PDF文檔獲取內(nèi)容的方法
這篇文章主要介紹了C#使用iTextSharp從PDF文檔獲取內(nèi)容的方法,涉及C#基于iTextSharp操作pdf文件的相關(guān)技巧,需要的朋友可以參考下2015-06-06
c# Invoke和BeginInvoke 區(qū)別分析
這篇文章主要介紹了c# Invoke和BeginInvoke 區(qū)別分析,需要的朋友可以參考下2014-10-10

