一、 纯 *** 作实现
第一步:数据库 *** 作
1、打开SqlServer2005的企业管理器,如果当前运行的不是local服务器,则将其删除,接着新建SqlServer注册,添加local,实现注册。
2、右击local下的数据库,选择所有任务,再选择附加数据库,将会d出附加数据库窗口,选择你将要附加的数据,数据库名及数据库用户名,然后确定,附加成功。
注意:当数据库用完后,需要分离数据库,然后将其保存。右击数据库---所有任务---分离数据库,则完成。
第二步:Vistualstudio中 *** 作
1、 新建项目,选择windows窗体应用程序。
2、 在form1窗体中,添加工具箱---数据---DataGridview
3、 选择DataGridview上边框的三角符合,选择选择数据源下添加项目数据源,然后选择数据库,下一步选择新建连接下的SqlServer,然后继续,d出添加连接窗口,在该窗口中的服务器名下填写英文点号(.),登陆到服务器选择使用SqlServer身份验证,填写数据库用户名和密码,然后选择你的数据库,然后测试连接,如果成功则说明连接成功。
4、 在VistualStudio中运行你的文件,这时form1中添加的DataGridview中会出现逆的数据表。
二、代码实现
1、 新建项目,选择windows窗体应用程序。
2、 在form1窗体中,添加工具箱中数据中的---DataGridview
3、双击,form1窗体,首先在form1的头部添加两条:using System.datausing System.data.Sqlclient 。然后再form1_load()事件中编写如下代码:
String constr=”data source=.intial catalog=studentuser id=sapassword=” //连接数据库服务器
SqlConnection conn=new SqlConnection(constr)//SQL连接类的实例化
Conn.open() //打开数据库
Messagebox.show(“连接成功!”) //d出窗口,用于测试数据库连接是否成功。
String sql=“select * from student” //执行的查询语句
SqlDataAdapeter find=new SqlDataAdapter(sql,conn) // 创建DataAdapter数据适配器实例,SqlDataAdapter作用是 DataSet和 SQL Server之间的桥接器,用于检索和保存数据
DataSet save=new DataSet() //创建DataSet实例
find.Fill(save,"wu") // 使用DataAdapter的Fill方法(填充),调用SELECT命令 fill(对象名,"自定义虚拟表名")
DataGridView1.Datasource=save.Tables[0] // 向DataGridView1中填充数据
conn.close() //关闭数据库
Mysql C API编程步骤1、首先我们要包含mysql的头文件,并链接mysql动态库。即添加以下语句:
#include <WinSock2.h>// 进行网络编程需要winsock2.h
#include <mysql.h>
#pragma comment(lib, “libmysql.lib”)
2、创建MYSQL变量。如:
MYSQL mysql
3、初始化MYSQL变量。
mysql_init(&mysql)
4、调用mysql_real_connect函数连接Mysql数据库。mysql_real_connect函数的原型如下:
MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host,const char *user,const char *passwd,const char *db,unsigned int port,const char *unix_socket,unsigned long clientflag)
参数说明:mysql–前面定义的MYSQL变量;host–MYSQL服务器的地址;user–登录用户名;passwd–登录密码;db–要连接的数据库;port–MYSQL服务器的TCP服务端口;unix_socket–unix连接方式,为NULL时表示不使用socket或管道机制;clientflag–Mysql运行为ODBC数据库的标记,一般取0。连接失败时该函数返回0。
5、调用mysql_real_query函数进行数据库查询。mysql_real_query函数的原型如下:
int STDCALL mysql_real_query(MYSQL *mysql, const char *q, unsigned long length)
参数说明:mysql–前面定义的MYSQL变量;q–SQL查询语句;length–查询语句的长度。
查询成功则该函数返回0。
6、通过调用mysql_store_result或mysql_use_result函数返回的MYSQL_RES变量获取查询结果数据。
两个函数的原型分别为:
MYSQL_RES * STDCALL mysql_store_result(MYSQL *mysql)
MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql)
这两个函数分别代表了获取查询结果的两种方式。第一种,调用mysql_store_result函数将从Mysql服务器查询的所有数据都存储到客户端,然后读取;第二种,调用mysql_use_result初始化检索,以便于后面一行一行的读取结果集,而它本身并没有从服务器读取任何数据,这种方式较之第一种速度更快且所需内存更少,但它会绑定服务器,阻止其他线程更新任何表,而且必须重复执行mysql_fetch_row读取数据,直至返回NULL,否则未读取的行会在下一次查询时作为结果的一部分返回,故经常我们使用mysql_store_result。
7、调用mysql_fetch_row函数读取结果集数据。
上述两种方式最后都是重复调用mysql_fetch_row函数读取数据。mysql_fetch_row函数的原型如下:
MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result)
参数result就是mysql_store_result或mysql_use_result的返回值。
该函数返回MYSQL_ROW型的变量,即字符串数组,假设为row,则row〔i〕为第i个字段的值。当到结果集尾部时,此函数返回NULL。
8、结果集用完后,调用mysql_free_result函数释放结果集,以防内存泄露。mysql_free_result函数的原型如下:
void STDCALL mysql_free_result(MYSQL_RES *result)
9、不再查询Mysql数据库时,调用mysql_close函数关闭数据库连接。mysql_close函数的原型为:
void STDCALL mysql_close(MYSQL *sock)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)