C sharp应用access和sql serve数据库
从一个开源程序,学习access和sql serve在C#中的应用
1. 背景
近来想看看怎么实现数据库的连接,在github上找到一个开源的记账项目,仅供学习使用。
- 项目使用了一个access数据库,做用户登陆,保存登陆数据
- .mdb:access数据库文件
- .mdb:access数据库文件
- 登陆成功之后,项目新建了一个sql serve数据库文件, 保存用户数据。
- .mdf:数据文件
- .ldf:日志文件
2. 打开数据库文件
打开access数据库文件:
- 安装access数据库。从微软官网下载office365全家桶,自带access。
- 双击打开,数据库文件。数据库密码从项目源码中可以得到:
string connectstring = "provider=Microsoft.jet.OLEDB.4.0;Data Source=accountsystem.mdb;Jet OleDb:Database Password=lxw618"
- 登陆后在相应的表中得到了相应的登陆用户和密码。用于后续探索。
打开sql serve数据库文件
- 安装sql serve数据库,去官网下载,可以选择SSMS安装(带UI),下载后如图:
- 连接到SQL server服务器(没有远程的情况下,本地电脑本身也可以作为服务器)
- 本机服务器名称可以为
本机名
,可以为.
, 也可以为local
,也可以为本机IP
- 本机服务器名称可以为
- 安装sql serve数据库,去官网下载,可以选择SSMS安装(带UI),下载后如图:
3. sql server如何导入外部.mdf文件
- 以管理身份运行SSMS,不然没有权限导入,切记
- 进入并且连接上数据库之后,右键“数据库”,选择“附加”,添加外部mdf文件,ldf文件会一并自动添加到数据库中
- 导入后的外部数据库
4. 检查配置sql远程权限,远程TCP连接用,本地不用
- SQL配置管理检查,TCP端口1433
- 查看sql实例运行状态
- 防火墙设置
5. 测试sql serve
除了通过SSMS连接,还有一些其他方式,如
建立.udl
文件- 建立一个新建文本文档,把后缀改为.udl;右键打开文件属性,选择连接。测试连接
- 建立一个新建文本文档,把后缀改为.udl;右键打开文件属性,选择连接。测试连接
通过CMD测试连接,如果显示
1>
则连接成功。用QUIT
退出测试1
sqlcmd -S <server name> -U <user name> -p <pass word> -d <database name>
6. 通过C#实现数据库的连接
access数据库的连接方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22public Boolean GetSqlConnectString()
{
try
{
string connectstring = "provider=Microsoft.jet.OLEDB.4.0;Data Source=accountsystem.mdb;Jet OleDb:Database Password=lxw618";
string sqlcommand = "select connect from [Set]";
OleDbConnection aConnection = new OleDbConnection(connectstring);
aConnection.Open();
OleDbCommand aCommand = new OleDbCommand(sqlcommand, aConnection);
OleDbDataReader reader = aCommand.ExecuteReader();
reader.Read();
sqlConectstring = reader.GetString(0);
reader.Close();
aConnection.Close();
return true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "系统错误");
return false;
}
}sql server数据库连接方法,实际上示例名可以空着
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21private void btnSetConnect_Click(object sender, EventArgs e)
{
try
{
if (this.IsNull() == true)
{
return;
}
string connectstring = "Data Source=" + txtServer.Text + "\\" + txtCase.Text + ";Initial Catalog=" + txtDatabase.Text + ";User ID=" + txtUsername.Text + ";Password=" + txtPassword.Text;
string sqlcommand = "select username,password from [User]";
SqlConnection sqlConnection = new SqlConnection(connectstring);
sqlConnection.Open();
SqlCommand sqlCommand = new SqlCommand(sqlcommand, sqlConnection);
SqlDataReader reader = sqlCommand.ExecuteReader();
MessageBox.Show("连接成功", "恭喜");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "系统错误");
}
}
7. 登陆测试
.
表示本地- 本地服务器实例名空着,因为不管用cmd还是udl验证都没填写实例名
- 数据库名,用户名,密码保持一致
- 实际上的中断用户名和密码是通过在线调试程序打断点的方式得到的。程序里有行比较数据库用户程序名和输入用户程序名的代码段。
8. 附录,早前使用access练习sql指令的命令行
1 |
|
C sharp应用access和sql serve数据库
http://example.com/2024/07/21/C sharp应用access和sql serve数据库/