一、连接VS2013自带的本地数据库
using System.Data.SqlClient;
首先定义一个连接字符串
public static string ConnectString = "Server=(localdb)\\Projects;Initial Catalog=Test;Integrated Security=true";
其中:Server是服务器名
Ilitial Catalog是数据库名
Integrated Security是集成验证,使用Windows验证的方式去连接到数据库服务器。不需要在连接字符串中编写用户名和密码,从一定程度上说提高了安全性。(该参数为false时或省略该项时,按照Userid和password来连接,设为SSPI时相当于true。)
1using (SqlConnection conn = new SqlConnection(ConnectString)) 2 { 3 string sql = "select password,level from [Test].[dbo].[User] where userid='" + username + "'"; 4 using (SqlCommand cmd = new SqlCommand(sql, conn)) 5 { 6 conn.Open(); 7 using (SqlDataReader sdr = cmd.ExecuteReader()) 8 { 9 if(sdr.Read()) 10 { 11 //则将对应该用户名下的 第一个字段 即使密码(select的第一个字段) 赋给 字符串pwd,并且依次往后读取 所有的密码 12 //Trim()方法为移除字符串前后的空白 13 string pwd = sdr.GetString(0).Trim(); 14 //读取器sdr获取了2列数据 第1列为密码索引为0 第2列即索引为1的是用户类型 15 string uType = sdr.GetString(1).Trim(); 16 if (pwd == password) 17 { 18 //获取登陆成功后的用户ID 19 Uid = username; 20 UserType = uType; 21 if(UserType=="普通用户") 22 { 23 this.Hide(); 24 User muser = new User(); 25 muser.ShowDialog(); 26 } 27 else if(UserType== "高级用户") 28 { 29 this.Hide(); 30 VipUser mvuser = new VipUser(); 31 mvuser.ShowDialog(); 32 33 } 34 else if(UserType=="管理员") 35 { 36 this.Hide(); 37 Admimistor madministor = new Admimistor(); 38 madministor.ShowDialog(); 39 40 } 41 }
SqlConnection:数据库连接类
SqlCommand:数据库操作类
SqlDataReader:读取
二、对数据库中的数据进行增、删、查、改(在DataGridview中)
1SqlDataAdapter adp = null; 2 DataSet ds = null; 3 4 private void Admimistor_Load(object sender, EventArgs e) 5 { 6 adp = new SqlDataAdapter("select * from [Test].[dbo].[User]", Login.ConnectString);//实例化桥接器 7 ds = new DataSet();//实例化数据集 8 adp.Fill(ds); 9 dataGridView1.DataSource = ds.Tables[0]; 10 11 12 } 13 //向表中编辑或添加数据 14 private void button1_Click(object sender, EventArgs e) 15 { 16 SqlCommandBuilder scb = new SqlCommandBuilder(adp); 17 //更新数据 18 try 19 { 20 //这里是关键 21 adp.Update(ds); 22 } 23 catch (SqlException ex) 24 { 25 MessageBox.Show(ex.Message); 26 } 27 } 28 29 30 //删除表中的选中行 31 private void button3_Click(object sender, EventArgs e) 32 { 33 foreach (DataGridViewRow dr in dataGridView1.SelectedRows) 34 { 35 MessageBox.Show("确认删除吗?"); 36 dataGridView1.Rows.Remove(dr);//删除一条记录 37 } 38 }
SqlDataAdapter是 DataSet和 SQL Server之间的桥接器,用于检索和保存数据。SqlDataAdapter通过对数据源使用适当的Transact-SQL语句映射 Fill(它可更改DataSet中的数据以匹配数据源中的数据)和 Update(它可更改数据源中的数据以匹配 DataSet中的数据)来提供这一桥接。当SqlDataAdapter填充 DataSet时,它为返回的数据创建必需的表和列(如果这些表和列尚不存在)。
DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合。所谓独立,就是说,即使断开数据链路,或者关闭数据库,DataSet依然是可用的,DataSet在内部是用XML来描述数据的,由于XML是一种与平台无关、与语言无关的数据描述语言,而且可以描述复杂关系的数据,比如父子关系的数据,所以DataSet实际上可以容纳具有复杂关系的数据,而且不再依赖于数据库链路。
部分引用自:
1.C#中SqlDataAdapter的使用小结 - CSDN博客
http://blog.csdn.net/nicholaseenzhu/article/details/70417407
2.360百科