比较无奈的一个选择,上课老师要求必须使用Mysql,而我又比较喜欢用VS,所以,就又过了这样一个蹩脚的组合……

      编程语言:C#;

      使用软件:VS2008,Mysql 5.0,mysql-connector-net-5.0.9,MySQL.VisualStudio(要先装mysql-connector-net,后装MySQL.VisualStudio);

      在这里实际上使用了一种偷懒的做法,使用Mysql提供的类库,可以在代码中直接使用Mysql.Data.*。

     

  针对几个模块的不同方法:

      一,登陆的验证:

      没有见识过真正的用户名密码验证时怎么做的,我使用了比较笨的办法:

      




mysql必须安装openssl 安装mysql必须要visual_SQL

mysql必须安装openssl 安装mysql必须要visual_mysql必须安装openssl_02

Login


1                 MySqlConnection conn  
    = 
      
    new 
     MySqlConnection(defvalues.constr);
      2  
                conn.Open();
      3  
                 
    // 
    读取所输入的用户名和密码 
    
      4  
     
                MySqlCommand comm  
    = 
     conn.CreateCommand();
      5  
                 
    if 
     (radioButton1.Checked)
      6  
                {
      7  
                     
    string 
     sql  
    = 
      
    " 
    SELECT aname,pass FROM xuanke.admin WHERE(aname=' 
    " 
      
    + 
     textBox1.Text  
    + 
      
    " 
    ') 
    " 
    ;
      8  
                    comm.CommandText  
    = 
     sql;
      9  
                     
    try 
    
     10  
                    {
     11  
                        MySqlDataReader datar  
    = 
     comm.ExecuteReader();
     12  
    
     13  
    
     14  
                         
    // 
    判断是否存在输入的用户 
    
     15  
     
    
     16  
                         
    if 
     ( 
    ! 
    datar.HasRows)
     17  
                        {
     18  
                            MessageBox.Show( 
    " 
    用户名不存在,请重新输入! 
    " 
    );
     19  
                            textBox1.Focus();
     20  
                             
    return 
    ;
     21  
                        }
     22  
    
     23  
    
     24  
                         
    // 
    读取数据库的内容,并与输入的进行比较; 
    
     25  
     
                         
    while 
     (datar.Read())
     26  
                        {
     27  
                             
    // 
    判断用户输入是否正确 
    
     28  
     
                             
    if 
     (datar[ 
    " 
    pass 
    " 
    ].ToString().Trim()  
    != 
     textBox2.Text.Trim())
     29  
                            {
     30  
                                MessageBox.Show( 
    " 
    用户密码不正确,请重新输入! 
    " 
    );
     31  
                                textBox2.Focus();
     32  
                                 
    return 
    ;
     33  
                            }
     34  
    
     35  
                             
    else 
    
     36  
                            {
     37  
                                AdminLogin f1  
    = 
      
    new 
     AdminLogin();
     38  
                                f1.info  
    = 
     textBox1.Text.Trim();
     39  
                                f1.ShowDialog();
     40  
                                Close();
     41  
                                
     42  
                            }
     43  
    
     44  
                        }
     45  
                    }
     46  
                     
    catch 
     (Exception ex)
     47  
                    {
     48  
                        MessageBox.Show( 
    " 
    出现错误,错误原因为 
    " 
      
    + 
     ex.Message,
     49  
                             
    " 
    系统提示: 
    " 
    , MessageBoxButtons.OK, MessageBoxIcon.Error);
     50  
                    }
     51  
    
     52  
    
     53  
                }


 

        先把用户名和密码从表中选出来,然后,持有用户名,把键入的密码在查询结果查询,验证。

        这里关于获取数据的方法,就是利用command吸收了sqlstr,然后使用command.ExecuteReader();返回的DataReader,利用这个里面提供的索引来获取。

        我觉得这里返回给DataReader的应该也是一个表,可以根据不同的column来读取不同的值。

        二,根据学号查询学生信息

 


mysql必须安装openssl 安装mysql必须要visual_SQL

mysql必须安装openssl 安装mysql必须要visual_mysql必须安装openssl_02

search   
 1                   private 
      
    void 
     GetData( 
    string 
     selectCommand, BindingSource bd)
      2              {
      3                   
    try 
    
      4                  {
      5                       
    // 
     Specify a connection string. Replace the given value with a 
      6                       
    // 
     valid connection string for a Northwind SQL Server sample
      7                       
    // 
     database accessible to your system. 
    
      8       
                    String connectionString  
    = 
    
      9                           
    " 
    Database=xuanke;Data Source=localhost;User Id=root;Password=tjucfsc4 
    " 
    ;
     10      
     11                       
    // 
     Create a new data adapter based on the specified query. 
    
     12       
                    MySqlDataAdapter dataAdapter  
    = 
      
    new 
     MySqlDataAdapter(selectCommand, connectionString);
     13      
     14                       
    // 
     Create a command builder to generate SQL update, insert, and
     15                       
    // 
     delete commands based on selectCommand. These are used to
     16                       
    // 
     update the database. 
    
     17       
                    MySqlCommandBuilder commandBuilder  
    = 
      
    new 
     MySqlCommandBuilder(dataAdapter);
     18      
     19                       
    // 
     Populate a new data table and bind it to the BindingSource. 
    
     20       
                    DataTable table  
    = 
      
    new 
     DataTable();
     21                      table.Locale  
    = 
     System.Globalization.CultureInfo.InvariantCulture;
     22                      dataAdapter.Fill(table);
     23                      bd.DataSource  
    = 
     table;
     24      
     25      
     26      
     27                  }
     28                   
    catch 
     (Exception ex)
     29                  {
     30                      MessageBox.Show( 
    " 
    出现错误,错误原因为 
    " 
      
    + 
     ex.Message,
     31                           
    " 
    系统提示: 
    " 
    , MessageBoxButtons.OK, MessageBoxIcon.Error);
     32                  }
     33              }
     34               
    private 
      
    void 
     button3_Click( 
    object 
     sender, EventArgs e)
     35              {
     36                  dataGridView4.DataSource  
    = 
     bindingSource1;
     37                   
    if 
     (radioButton2.Checked)
     38                  {
     39                       
    string 
     str  
    = 
      
    " 
    select * from xuanke.students where sname=\ 
    "" 
     + textBox1.Text.Trim() +  
    " 
    \ 
    " 
    ; 
    " 
    ;
     40                      GetData(str, bindingSource1);
     41                  }
     42      
     43                   
    else 
      
    if 
     (radioButton1.Checked)
     44                  {
     45                       
    string 
     str  
    = 
      
    " 
    select * from xuanke.students where sid=\ 
    "" 
     + textBox1.Text.Trim() +  
    " 
    \ 
    " 
    ; 
    " 
    ;
     46                      GetData(str, bindingSource1);
     47                  }
     48                   
    else 
     { ;}
     49              }


 

        此处使用了Datagridview和BindingSource,使用比较简单:构造一条SQL语句,然后将Datagridview的数据源指向BindingSource,然后利用GetData方法,将SQL语句的执行结果赋给BindingSource就可以了。我觉得这个方法是见过的方法中最简单有效的。GetData可以COPY到任何你想要的地方而无需更改,只要把表格和源定义好,直接加进SQL语句就可以啦~

        三,页面Load

        这个方法需要VS能够收录Mysql的连接器,第一次成功了,后来就不行,窃以为扩展性不如上两个好。

        这种方法实际上就是程序自主建立自己的DataSet,然后,一些数据访问直接在DataSet 上完成,而不用再去访问数据库。

        先建立一个DataTableAdapter对象,然后就根据提示,可以输入SQL语句,一步步,最重结果是建立了一个DataTable。没什么代码,鼠标流。       

      


mysql必须安装openssl 安装mysql必须要visual_SQL

mysql必须安装openssl 安装mysql必须要visual_mysql必须安装openssl_02

load

1                       //      TODO: 这行代码将数据加载到表“kunDataSet.DataTable3”中。您可以根据需要移动或移除它。 
    
     2                        
    this 
    .dataTable3TableAdapter.Fill( 
    this 
    .kunDataSet.DataTable3);
     3                       // 
     TODO: 这行代码将数据加载到表“kunDataSet.DataTable1”中。您可以根据需要移动或移除它。 
    
     4                        
    this 
    .dataTable1TableAdapter.Fill( 
    this 
    .kunDataSet.DataTable1);


 

        就是把DataSet中的数据表Fill到DataGridView中。

        大概用到的也就这几种方法了,权作是个笔记了。