C#winform中数据库的连续

一、连日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。)

 using (SqlConnection conn = new SqlConnection(ConnectString))
             {
                 string sql = "select password,level from [Test].[dbo].[User] where userid='" + username + "'";
                 using (SqlCommand cmd = new SqlCommand(sql, conn))
                 {
                     conn.Open();
                     using (SqlDataReader sdr = cmd.ExecuteReader())
                     {
                         if(sdr.Read())
                         {
                             //则将对应该用户名下的 第一个字段 即使密码(select的第一个字段) 赋给 字符串pwd,并且依次往后读取 所有的密码
                             //Trim()方法为移除字符串前后的空白
                             string pwd = sdr.GetString(0).Trim();
                             //读取器sdr获取了2列数据 第1列为密码索引为0 第2列即索引为1的是用户类型
                             string uType = sdr.GetString(1).Trim();
                             if (pwd == password)
                             {
                                 //获取登陆成功后的用户ID
                                Uid = username;
                                UserType = uType;
                                if(UserType=="普通用户")
                                 {
                                     this.Hide();
                                    User muser = new User();
                                     muser.ShowDialog();                           
                                 }      
                                 else if(UserType== "高级用户")
                                 {
                                     this.Hide();
                                     VipUser mvuser = new VipUser();
                                     mvuser.ShowDialog();

                                 }
                                 else if(UserType=="管理员")
                                 {
                                     this.Hide();
                                     Admimistor madministor = new Admimistor();
                                     madministor.ShowDialog();

                                 }                                                             
                                 }

SqlConnection:数据库连接类

SqlCommand:数据库操作类

SqlDataReader:读取

二、对数据库中的数据开展增、删、查、改(在DataGridview中)

     SqlDataAdapter adp = null;
     DataSet ds = null;

        private void Admimistor_Load(object sender, EventArgs e)
        {
                adp = new SqlDataAdapter("select * from [Test].[dbo].[User]", Login.ConnectString);//实例化桥接器          
            ds = new DataSet();//实例化数据集           
            adp.Fill(ds);        
            dataGridView1.DataSource = ds.Tables[0];


        }
        //向表中编辑或添加数据
        private void button1_Click(object sender, EventArgs e)
        {
            SqlCommandBuilder scb = new SqlCommandBuilder(adp);
            //更新数据  
            try
            {
                //这里是关键  
                adp.Update(ds);
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message);
            }
        }


 //删除表中的选中行
        private void button3_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewRow dr in dataGridView1.SelectedRows)
            {
                MessageBox.Show("确认删除吗?");    
                dataGridView1.Rows.Remove(dr);//删除一条记录
            }
        }

SqlDataAdapter是 DataSet和 SQL
Server之间的桥接器,用于检索和保留数据。SqlData艾达pter通过对数据源使用方便的Transact-SQL语句映射
Fill(它可更改DataSet中的数据以匹配数据源中的数据)和
Update(它可更改数据源中的数据以配合
DataSet中的数据)来提供这一桥接。当SqlData艾达(Ada)pter填充
DataSet时,它为回到的数码成立必需的表和列(借使这个表和列尚不存在)。

DataSet当成内存中的数据库,DataSet是不借助于于数据库的独门数据集合。所谓独立,就是说,尽管断开数据链路,或者关闭数据库,DataSet依然是可用的,DataSet在内部是用XML来描述数据的,由于XML是一种与平台无关、与语言无关的数目描述语言,而且可以描述复杂关系的数码,比如父子关系的数额,所以DataSet实际上能够兼容所有复杂性关系的多少,而且不再依靠于数据库链路。

部分引用自:

1.C#中SqlData艾达(Ada)pter的采纳小结 – CSDN博客
http://blog.csdn.net/nicholaseenzhu/article/details/70417407

2.360百科

 

 

   

 

相关文章