新建一个工程名叫mysql,编程环境选择c#,然后选择windows窗体应用程序,新建一个窗体用于显示查询到sql数据库的数据集
从工具箱向form1窗体上拖一个按钮和datagridview控件,按钮是触发连接数据库获取数据集,按钮的名称为显示,datagridview控件是用于显示数据集内容
单击解决方案资源管理器中的引用文件夹然后右键选择添加引用,选择浏览后打开mysql.data.dll,这是c#连接mysql数据库的动态库,里面封装了很多常用的 *** 作数据库的方法
在解决方案资源管理器中的form1.cs的代码中加入using MySql.Data.MySqlClient这就是代码中的实际引用mysql.data.dll中的内容,有了这个c#就能很方便地 *** 作sql数据库
在按钮的单击事件中添加如下代码
string str = "Server=127.0.0.1User ID=rootPassword=123456Database=testCharSet=gbk"
MySqlConnection con = new MySqlConnection(str)//实例化链接
con.Open()//开启连接
string strcmd = "select * from user"
MySqlCommand cmd = new MySqlCommand(strcmd, con)
MySqlDataAdapter ada = new MySqlDataAdapter(cmd)
DataSet ds = new DataSet()
ada.Fill(ds)//查询结果填充数据集
dataGridView1.DataSource = ds.Tables[0]
con.Close()//关闭连接
使用navicat软件在数据库test中新建表user,然后新建两个字段username和password(图中的栏位),navicat软件是mysql的图形化界面工具,负责新建表以及备份等数据库 *** 作,直观地通过界面来 *** 作
数据库建好后就可以执行工程了,单击显示按钮执行结果如下,出现username和password说明数据库连接成功,由于没有添加数据所以下面为空
Sql数据库连接参考示例
public void 数据集测试(){
//(1.连接)建立到数据库的 连接 conn
SqlConnection conn = new SqlConnection()
conn.ConnectionString = @"Data Source = (LocalDB)\MSSQLLocalDB AttachDbFilename = J:\数据库\SQLDB\NewDB.mdf Integrated Security = True Connect Timeout = 5"
//(2.打开)
conn.Open()
string 表名 = "Users"
using (conn)
{
//(3.适配)适配器 da 和 数据集 ds
da = new SqlDataAdapter()
ds = new DataSet("DataSet1")
//var dt = new DataTable()
//ds.Tables.Add(dt)
//(4.Select命令)填充命令 cmd
da.SelectCommand = new SqlCommand(@"select * from " + 表名)
//(5.Fill到数据集)
da.Fill(ds, 表名)
}
//(6.释放资源)
conn.Close()
conn.Dispose()
//访问数据集中的表
DataTable myTable = ds.Tables[表名]
foreach (DataRow myRow in myTable.Rows)
{
foreach (DataColumn myColumn in myTable.Columns)
{
Console.WriteLine(myRow[myColumn]) //遍历表中的每个单元格
}
}
//修改数据
foreach (DataRow row in myTable.Rows)
{ row["name"] = row["name"] + "备份" }
// 将DataSet的修改提交至“数据库”
SqlCommandBuilder mySqlCommandBuilder = new SqlCommandBuilder(da)
da.Update(ds, 表名)
//注意:在修改、删除等 *** 作中表必须定义主键,select的字段也必须包含主键,
//否则会抛出异常“对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成。”
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)