读书人

.NET C#登录界面,该如何处理

发布时间: 2012-01-09 21:05:42 作者: rapoo

.NET C#登录界面
这是一个登录界面,判断是否登录成功。
麻烦各位高手帮忙找下这个错在哪里,要怎么改,谢谢
还有,调试还提示“类、结构或接口成员声明中的标记"this","=",","无效


using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;

namespace MainFrm
{
/// <summary>
/// Form2 的摘要说明。
/// </summary>
public class Form2 : System.Windows.Forms.Form
{
//调试时提示这里错误this.ds = xj.SelectDataBase (sendStrSQL,sendTableName);this.myTable = ds.Tables [0];
public static bool blCanLogin = false;
private DataSet ds= new DataSet ();
private DataTable myTable;
private DataRow myRow;
private string sendStrSQL="select * from 用户信息 ";
xjDataBase xj = new xjDataBase ();
string sendTableName = "用户信息";
this.ds = xj.SelectDataBase (sendStrSQL,sendTableName);
this.myTable = ds.Tables [0];


private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.Container components = null;

public Form2()
{

//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();

//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}

/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form2));
this.textBox1 = new System.Windows.Forms.TextBox();
this.textBox2 = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(200, 80);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(144, 21);
this.textBox1.TabIndex = 0;
this.textBox1.Text = "";
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(200, 152);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(144, 21);
this.textBox2.TabIndex = 1;
this.textBox2.Text = "";
//
// label1
//
this.label1.Location = new System.Drawing.Point(64, 80);
this.label1.Name = "label1";
this.label1.TabIndex = 2;
this.label1.Text = "用户名";
//
// label2
//
this.label2.Location = new System.Drawing.Point(64, 152);
this.label2.Name = "label2";
this.label2.TabIndex = 3;
this.label2.Text = "密码";
//
// button1
//
this.button1.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(128)), ((System.Byte)(128)), ((System.Byte)(255)));
this.button1.Location = new System.Drawing.Point(104, 216);
this.button1.Name = "button1";
this.button1.TabIndex = 4;


this.button1.Text = "确定";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// button2
//
this.button2.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(128)), ((System.Byte)(128)), ((System.Byte)(255)));
this.button2.Location = new System.Drawing.Point(224, 216);
this.button2.Name = "button2";
this.button2.TabIndex = 5;
this.button2.Text = "取消";
//
// Form2
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage")));
this.ClientSize = new System.Drawing.Size(408, 278);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.textBox1);
this.MaximizeBox = false;
this.Name = "Form2";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Form2";
this.Load += new System.EventHandler(this.Form2_Load);
this.ResumeLayout(false);

}
#endregion

private void Form2_Load(object sender, System.EventArgs e)
{

}



private void button1_Click(object sender, System.EventArgs e)
{
for (int i=0;i<myTable.Rows .Count ;i++)
{
this.myRow = myTable.Rows [i];
if (myRow[0].ToString ().Trim ()==this.textBox1 .Text .ToString ().Trim ()&&myRow[2].ToString ().Trim ()==this.textBox2.Text .ToString ().Trim ())
{
blCanLogin = true;
strUser = myRow[0].ToString ().Trim ();
strpwd=myRow[2].ToString ().Trim ();
strDignity = myRow[3].ToString ().Trim ();
strName = myRow[1].ToString ().Trim ();
this.Close ();
return;
}
}
MessageBox.Show ("用户名或密码输入错误!","提示!");
return;

}

}
}

[解决办法]
//调试时提示这里错误this.ds = xj.SelectDataBase (sendStrSQL,sendTableName);this.myTable = ds.Tables [0]; 把这句放到Form_Load里。this关键字的用法不对!

for (int i=0;i <myTable.Rows .Count ;i++)
{
this.myRow = myTable.Rows [i];
if (myRow[0].ToString ().Trim ()==this.textBox1 .Text .ToString ().Trim ()&&myRow[2].ToString ().Trim ()==this.textBox2.Text .ToString ().Trim ())
{
blCanLogin = true;
strUser = myRow[0].ToString ().Trim ();
strpwd=myRow[2].ToString ().Trim ();
strDignity = myRow[3].ToString ().Trim ();
strName = myRow[1].ToString ().Trim ();
this.Close ();
return;
}
}
用这么个循环判断,如果数据有上万条怎么办?效率!!
简单的办法就是在单击事件是把用户的信息传递给数据库,用SQL语句的Where条件进行过滤来查找用户。
再说了,DataSet是一个缓存的数据集,就为了一个用户把所有的用户数据都从数据库提出来,没有必要,程序的性能也大大的下除。


读书人网 >C#

热点推荐