在VS2010中怎样用C#创建数据库连接并执行sql语句 最好举个例子讲一下

在VS2010中怎样用C#创建数据库连接并执行sql语句 最好举个例子讲一下,第1张

用C#联接SQL有两种连接方式,字符串连接和配置文件连接。一个连接字符串的例子是对数据库文件NORTHWEND.MDF的连接

Data Source=.\SQLEXPRESS AttachDbFilename=C:\...\NORTHWND.MDF

Integrated Security=True Connect Timeout=30 User Instance=True

数据源的值是.\SQLEXPRESS,这里“.”可以写成(local)或者localhost,表示是本机数据库。\SQLEXPRESS表示数据库NORTHWEND.MDF是免费产品。由于数据库是文件形式,添加了AttachDbFilename说明。

另外的例子是对于安装在服务器的数据库,例如本机安装的数据库,使用SqlClient连接字符串。连接到AdventureWorks2008的连接字符串示例如下:

Data Source=.Initial Catalog=AdventureWorks2008Integrated Security=True

对于SQL Server身份验证,使用指定用户名和密码,这里星号表示有效用户名和密码。

"Persist Security Info=FalseUser ID=*****Password=*****"

+"Initial Catalog=AdventureWorksServer=MySqlServer"

配置文件是可以按需要更改的XML文件。开发人员可以使用配置文件来更改设置,而不必重编译应用程序。

建议不要在代码中嵌入连接字符串。如果服务器的位置更改,应用程序将需要重新编译。此外,编译成应用程序源代码的未加密连接字符串可以使用MSIL反汇编程序(ildasm.exe)查看而泄密。为了避免将连接字符串存储在代码中,可以将代码存储在ASP.NET应用程序的web.config文件中以及Windows应用程序的app.config文件中。

使用配置文件可以避免记忆连接字符串细节的负担,记忆配置文件的设置过程比记忆连接字符串的细节要容易,因为设置过程按向导进行,智能提示有助于获取连接字符串。下面是VS2010设置配置文件的连接字符串。

具体做法给你推荐一本书:《C#编程指南》,清华大学出版社,2011年1月出版,相关内容有数据库的下载安装、可视化编程、ADO、SQL的FILESTREAM、以及O/R设计器(对象关系设计器)等。在Google或百度输入书名,作者,出版社,有好几家网上书店出售,最低75折,送到家。目前还未在书店上架。

连接Access数据库:

DataSet daset = new DataSet()

string strfilepath = "provider=microsoft.jet.oledb.4.0data source=连接Access数据库.mdb"//先在debug文件夹下放一个数据库文件 连接Access数据库.mdb

string select = "select * from 员工信息表"//定义连接数据源

//声明一个数据连接

OleDbConnection conn = new OleDbConnection(strfilepath)

OleDbDataAdapter adapter = new OleDbDataAdapter(select, conn)

try

{

adapter.Fill(daset)//填充数据

if (daset.Tables[0].Rows.Count >1)//判断是否有符合条件的数据记录

{

dataGridView1.DataSource = daset.Tables[0]//把数据赋值给datagridview

}

}

catch (Exception ex)

{

throw new Exception(ex.ToString())

}

finally

{

//关闭数据库

conn.Close()

conn.Dispose()

daset.Dispose()

}

//=========连接SQL Server===============

DataSet daset = new DataSet()

string connsqlserver = @"server=.database=student"//连接本地数据库和数据库名

//string connsqlserver="data source=.database=student"//这样也可以

string selectsql = "select * from 学号"//查询语句、内容

SqlConnection conn = new SqlConnection(connsqlserver)//连接数据库

SqlDataAdapter adapter = new SqlDataAdapter(selectsql, conn)

try

{

conn.Open()

if (conn.State == ConnectionState.Closed)

conn.Open()

adapter.Fill(daset)

if (daset.Tables[0].Rows.Count >1)

{

dataGridView1.DataSource = daset.Tables[0]

}

}

catch (Exception ex)

{

throw new Exception(ex.ToString())

}

finally

{

conn.Close()

conn.Dispose()

daset.Dispose()

}

可以用多种方法,比如说用ODBC对excel数据库进行 *** 作,或者说用excel 的COM接口进行编程。我找到一个例子关键代码如下:

//创建并写入Excel文件

void CRWExcel::WriteToExcel()

{

CDatabase database

CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"// Excel安装驱动

CString sExcelFile = "c:\\demo.xls"// 要建立的Excel文件

CString sSql

TRY

{

// 创建进行存取的字符串

sSql.Format("DRIVER={%s}DSN=''''FIRSTROWHASNAMES=1READONLY=FALSECREATE_DB=\"%s\"DBQ=%s",

sDriver, sExcelFile, sExcelFile)

// 创建数据库 (既Excel表格文件)

if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )

{

// 创建表结构(姓名、年龄)

sSql = "CREATE TABLE demo (Name TEXT,Age NUMBER)"

database.ExecuteSQL(sSql)

// 插入数值

sSql = "INSERT INTO demo (Name,Age) VALUES (''徐景周'',26)"

database.ExecuteSQL(sSql)

sSql = "INSERT INTO demo (Name,Age) VALUES (''徐志慧'',22)"

database.ExecuteSQL(sSql)

sSql = "INSERT INTO demo (Name,Age) VALUES (''郭徽'',27)"

database.ExecuteSQL(sSql)

}

// 关闭数据库

database.Close()

}

CATCH_ALL(e)

{

TRACE1("Excel驱动没有安装: %s",sDriver)

}

END_CATCH_ALL

}

// 读取Excel文件

void CRWExcel::ReadFromExcel()

{

CDatabase database

CString sSql

CString sItem1, sItem2

CString sDriver

CString sDsn

CString sFile = "Demo.xls"// 将被读取的Excel文件名

// 检索是否安装有Excel驱动 "Microsoft Excel Driver (*.xls)"

sDriver = GetExcelDriver()

if (sDriver.IsEmpty())

{

// 没有发现Excel驱动

AfxMessageBox("没有安装Excel驱动!")

return

}

// 创建进行存取的字符串

sDsn.Format("ODBCDRIVER={%s}DSN=''''DBQ=%s", sDriver, sFile)

TRY

{

// 打开数据库(既Excel文件)

database.Open(NULL, false, false, sDsn)

CRecordset recset(&database)

// 设置读取的查询语句.

sSql = "SELECT Name, Age "

"FROM demo "

"ORDER BY Name "

// 执行查询语句

recset.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly)

// 获取查询结果

while (!recset.IsEOF())

{

//读取Excel内部数值

recset.GetFieldValue("Name ", sItem1)

recset.GetFieldValue("Age", sItem2)

// 移到下一行

recset.MoveNext()

}

// 关闭数据库

database.Close()

}

CATCH(CDBException, e)

{

// 数据库 *** 作产生异常时...

AfxMessageBox("数据库错误: " + e->m_strError)

}

END_CATCH


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9411918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存