winform 连接数据库以及显示查询结果
简单的讲,ADO.NET是一组允许.NET开发人员使用标准的,结构化的,甚至无连接的方式与数据交互的技术。对于ADO.NET来说,可以处理数据源是多样的。可以是应用程序唯一使用的创建在内存中数据,也可以是与应用程序分离,存储在存储区域的数据(如文本文件、XML、关系数据库等)。
具体来说,ADO.NET 对 Microsoft SQL Server 和 XML 等数据源以及通过 OLE DB 和 XML 公开的数据源提供一致的访问。数据共享使用者应用程序可以使用 ADO.NET 来连接到这些数据源,并检索、处理和更新所包含的数据。
作为.NET框架的重要组成部分,ADO.NET 类封装在 System.Data.dll 中,并且与 System.Xml.dll 中的 XML 类集成。当编译使用 System.Data 命名空间的代码时,需要引用System.Data.dll 和 System.Xml.dll。
有关ADO.NET更多的内容,可以参考ADO.NET - 随笔分类 - 木小楠 - 博客园 (cnblogs.com)。写的很好,十分感谢。
正式开始,使用 SqlConnection 来连接数据库,使用 DataGridView 来显示查询的结果。
1、获取连接数据库所需的字符串,包括服务器名称,数据库名称,用户名以及密码,可在配置文件中配置,或直接在代码里写死
在配置文件 App.config 中配置的代码:
<configuration>
<appSettings>
<add key="connectionstring" value="server=192.168.3.201;database=Nine_Xhs;uid=sa;pwd=Nine!2021;"/>
</appSettings>
</configuration>
2、获取数据库连接对象
public static SqlConnection CreateSqlConn()
{
//从配置文件 App.config 中获取数据库连接字符串
var conStr = ConfigurationManager.AppSettings["connectionstring"];
SqlConnection conn = new SqlConnection(conStr);
return conn;
}
3、测试数据库的连通性
private void button1_Click(object sender, EventArgs e)
{
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
MessageBox.Show("连接成功","数据库连接测试");
}
catch (Exception ex)
{
MessageBox.Show("连接失败:"+ ex.Message, "数据库连接测试");
}
}
4、在窗口中添加 DataGridView 对象,用于显示数据
5、生成数据查询SQL,并将查询结果绑定到 DataGridView 上,在画面进行显示】
private void button2_Click(object sender, EventArgs e)
{
var dataCnt = numericUpDown1.Value;
dataCnt = dataCnt > 0 ? dataCnt : 5;
string sql = "Select Top " + dataCnt + " UserId,RedId,NickName,[Desc],Location From UserInfo ";
var ds = Query(sql);
if (ds.Tables?.Count > 0)
{
var dt = ds.Tables[0];
//直接绑定DataTable
dataGridView1.DataSource = dt;
////绑定对象列表
//List<UserInfo> userList = new List<UserInfo>();
//if (dt.Rows?.Count > 0)
//{
// foreach (DataRow row in dt.Rows)
// {
// UserInfo user = new UserInfo
// {
// UserId = row["UserId"] + "",
// RedId = row["RedId"] + "",
// NickName = row["NickName"] + "",
// Desc = row["Desc"] + "",
// Location = row["Location"] + "",
// };
// userList.Add(user);
// }
//}
//dataGridView1.DataSource = userList;
}
}
public DataSet Query(string sqlStr)
{
DataSet ds = new DataSet();
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
SqlDataAdapter command = new SqlDataAdapter(sqlStr, conn);
command.Fill(ds);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ds;
}
PS:DataGridView 对象绑定的数据源,DataTable 以及 对象List 都是可以的,显示的效果是一样的。
还有更多相关连接应用:
winform查询数据库 - Lee597 - 博客园 (cnblogs.com)
winform 打开excel文件并显示在dataGridView上 - Lee597 - 博客园 (cnblogs.com)
winform 根据dataGridView中的值,来循环使用 - Lee597 - 博客园 (cnblogs.com)
本文还参考了
【WinForm】 自学笔记二:连接数据库以及查询结果显示 - Nine_Jason - 博客园 (cnblogs.com)
特此感谢
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现