WinForm连接数据库(SQL Server 2008)
来源:互联网 发布:js将字符串转换成json 编辑:程序博客网 时间:2024/06/05 20:58
http://www.it165.net/pro/html/201309/7182.html
做窗体就是为了跟数据连接起来,我们做的一切都是在为数据服务!而数据库就是用来存数数据的。做好了窗体不能只摆在那看看就完事儿了,必须得用起来,必须用数据来测试一下,将指定的数据传输到指定的数据库。
WinForm连接数据库有这么几个大步骤:
◆ 在WinForm应用程序中制作一个简单的窗体
◆ 准备好要连接的数据库,包括服务器名,数据库名,登录名,和登录密码四部 分
◆ 建立连接(SqlConnection类里面有一个对象方法Open())
◆ 准备好一个字符串,在程序里它时字符串,但对于数据库而言它就是SQL语句 (比如下面例子中的string sql)
◆ 上面步骤都完善以后,将SQL语句发往数据库,并执行这个SQL语句
通过上面这几个步骤,我们就可以将数据库与WinForm连接起来,将客户端的数据发往我们指定的数据库中。
展示一下窗体哈。
01.
public
partial
class
frmCard : Form
02.
{
03.
public
frmCard()
04.
{
05.
InitializeComponent();
06.
}
07.
private
void
btnOK_Click(
object
sender, EventArgs e)
08.
{
09.
//读取用户输入的信息
10.
string
name =
this
.txtname.Text;
11.
string
sex;
12.
//界面上给了两个选择,默认的选择“男”,如果选择男,则返回0,否则返回1
13.
if
(
this
.rdbman.Checked==
true
)
14.
{
15.
sex =
"0"
;
16.
}
17.
else
18.
{
19.
sex =
"1"
;
20.
}
21.
string
birthday =
this
.dtbirth.Value.ToString();
22.
string
salary =
this
.txtmoney.Text;
23.
//准备好要连接的数据库
24.
string
connString =
"server=(local);database=SchoolDB;uid=sa;pwd=514420;"
;
25.
//创建一个SqlConnection类的对象,将准备好的数据库放入
26.
SqlConnection connection =
new
SqlConnection(connString);
27.
//打开连接
28.
connection.Open();
29.
//创建一个SqlCommand类的对象,创建一个命令
30.
SqlCommand command = connection.CreateCommand();
31.
//准备一个SQL语句,其中以@开头的在这里只表示一种变量,一种参数。
32.
string
sql=
"Insert into Friends(name, sex, birthday, salary)values(@name,@sex,@birthday,@salary)"
;
33.
//创建一个参数数组,并且用花括号里面的值来初始化数组
34.
SqlParameter[] parameters =
new
[]
35.
{
36.
//这里也有个初始化的过程,将name复制给@name,下面的是一样的
37.
new
SqlParameter(
"@name"
,name),
//而小括号右边的name就是程序一开始我们得到的用户输入的值
38.
new
SqlParameter(
"@sex"
,sex),
39.
new
SqlParameter(
"@birthday"
,birthday),
40.
new
SqlParameter(
"@salary"
,salary)
41.
};
42.
//利用对象的属性,把sql字符串放进命令(设置要对数据源执行的SQL语句)
43.
command.CommandText = sql;
44.
//先利用对象的Parameters属性获取参数集,再将参数集的值附加到后面
45.
command.Parameters.AddRange(parameters);
46.
//执行SQL语句:将SQL语句发往数据库中去执行
47.
int
x = command.ExecuteNonQuery();
48.
if
(x!=0)
49.
{
50.
//如果添加成功,那么给用户提示一下
51.
this
.lblRember.Text =
"添加成功!"
;
52.
}
53.
}
54.
}
通过上面几个步骤就架起了WinForm与数据库之间的桥梁,可以将客户端的数据传进数据库,当然肯定也可以将数据库中的数据读到客户端,也就是经常说的下载数据。
P.S:这里面用到了“参数”处理字符串(对于数据库而言是SQL语句)的方法,这样做最大的好处是,我们不用考虑数据库里的数据到底是什么类型的,这位程序员省了不少事,当然也有其他的处理办法,比如字符串的拼接,格式化字符串都可以实现的。这里比较推荐上面写的说这种办法,省事儿嘛!可以看看其他两种方法。
字符串拼接:
01.
//数据库中values后面的值,如果是字符串我们都要用单引号引起来,这里也一样,将一个完整的sql字符串分割成两个相加
02.
string
sql =
"Insert into Friends(name, sex, birthday, salary)values('"
+ name +
"', sex, birthday, salary)"
;
03.
command.CommandText = sql;
04.
//执行SQL语句:将SQL语句发往数据库中去执行
05.
int
x = command.ExecuteNonQuery();
06.
if
(x!=0)
07.
{
08.
//如果添加成功,那么给用户提示一下
09.
this
.lblRember.Text =
"添加成功!"
;
10.
}
采用这种方法,我们会这样处理字符串,这很困扰程序员,要考虑哪些数据时字符串类型的,非常考验大家,而且较容易出错。
格式化字符串:
01.
string
sql =
"Insert into Friends(name, sex, birthday, salary)values('{0}',{1},'{2}',{3}, name , sex, birthday, salary)"
;
02.
//将sql格式化成标准的字符串形式,这里的{0},{1}表示占位符,用其后的变量的值来填充
03.
string
sql2=
string
.Format(sql);
04.
command.CommandText = sql2;
05.
//执行SQL语句:将SQL语句发往数据库中去执行
06.
int
x = command.ExecuteNonQuery();
07.
if
(x!=0)
08.
{
09.
//如果添加成功,那么给用户提示一下
10.
this
.lblRember.Text =
"添加成功!"
;
11.
}
注意:数据库中的DataTime我们认为是字符串类型的所以上面的{2}要用单引号引住。
这种方式也行,不过还是一样要考虑数据类型的,不够安全啊!
Ajax的姑娘,加油啊!
- WinForm连接数据库(SQL Server 2008)
- C#winform应用程序连接sql server数据库代码
- 连接SQL Server数据库
- 连接SQL Server数据库
- 【C++连接数据库】SQL server 2008
- 网页连接数据库(sql server 2008)代码
- Eclipse连接SQL Server 2008数据库
- Eclipse连接SQL Server 2008数据库
- ADO连接SQL SERVER 2008数据库代码
- asp连接sql server 2008数据库
- Sql Server 2008 R2连接远程数据库
- Eclipse连接SQL Server 2008数据库
- Eclipse(myeclipse)连接SQL Server 2008数据库
- Eclipse连接SQL Server 2008数据库
- ODBC 连接数据库 SQL server 2008
- Java 连接SQL SERVER 2008数据库
- Android远程连接SQL Server 2008数据库
- java连接sql server 2008 R2数据库
- 不定期更新,记录和分享一些心得
- 什么是互联网安全
- Java注册工厂模式案例
- thinkPHP总结
- Android Shared Preferences 安全性
- WinForm连接数据库(SQL Server 2008)
- 6维数组下标到1维线性内存地址的相互映射
- 我想对神吐槽
- [Qt Bug修复]关于Qt窗口设置为FrameHintLess后不能最小化
- [字符串][第二阶段-字符串处理][HDOJ-2093]考试排名
- [Raspberry Pi] 1 无线网卡安装
- [字符串][第二阶段-字符串处理][HDOJ-2093]考试排名
- 黑马程序员——第16天上——(API)集合框架(Map集合)
- [字符串][第二阶段-字符串处理][HDOJ-2081]手机短号