唯勤机试题笔试题
1.登陆页面代码
private void button1_Click(object sender, EventArgs e)
{
string username = textBox1.Text;
string pwd = textBox2.Text;
string connStr = "server=.服务器名;uid=用户名;pwd=123456;database=wq";//数据库连接字符串
using (SqlConnection conn = new SqlConnection(connStr))
{
string sql = string.Format("select UserPwd from weiqin where UserName='{0}'", username);
conn.Open();
SqlCommand cmd = new SqlCommand();//sql语句执行对象
cmd.Connection = conn;//执行的数据库为conn
cmd.CommandText = sql;//执行的语句是sql
SqlDataReader dr = cmd.ExecuteReader();//读到的userpwd流,返回给dr
if (dr.Read())
{
if (pwd.Equals(dr[0].ToString()))//比较两个对象是否相等,FALSE true
{
Form2 m = new Form2();
if (m.ShowDialog() == DialogResult.OK)//打开From2窗体
{
m.Show();
}
}
else
MessageBox.Show("登陆失败");
}
}
}
2.主页代码
public Form2()
{
InitializeComponent();
GetUser();
}
/// <summary>
/// 显示数据
/// </summary>
public void GetUser()
{
string connStr = "server=. ;uid= ;pwd= ;database= ";
using (SqlConnection conn = new SqlConnection(connStr))
{
string sql = "select * from weiqin";
SqlDataAdapter da = new SqlDataAdapter(sql, conn);//执行打开数据库,执行sql语句,
DataSet ds = new DataSet();//程序集
da.Fill(ds, "weiqin");//用da填充ds
dataGridView1.DataSource = ds.Tables[0];//把数据绑定到data
}
}
//新增修改一个窗体
private void button1_Click(object sender, EventArgs e)
{
//单击弹出窗体
Form3 add = new Form3();
add.Text = "新增成功";
if (add.ShowDialog() == DialogResult.OK)
{
//重新显示数据
GetUser();
}
}
private void button2_Click(object sender, EventArgs e)
{
string username=dataGridView1[1,dataGridView1.CurrentCell.ColumnIndex].Value.ToString();
Form3 Add=new Form3(username);
Add.Text = "信息修改";
//当au=false时为修改
Add.au = false;
if (Add.ShowDialog() == DialogResult.OK)
{
GetUser();
}
}
private void button3_Click(object sender, EventArgs e)
{
string connStr = "server=.;uid=登录名;pwd=密码;database=数据库";
//鼠标单击每行中的第一个单元格的对象,返回一个username admin
string username=dataGridView1[1,dataGridView1.CurrentCell.ColumnIndex].Value.ToString();
using (SqlConnection conn = new SqlConnection(connStr))
{
string sql = string.Format("delete weiqin where UserName='{0}'",username);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sql;
int k = cmd.ExecuteNonQuery();//返回受影响的行数
if (k > 0)
{
MessageBox.Show("删除成功");
GetUser();
}
else
{
MessageBox.Show("删除失败");
return;
}
}
}
3.新增页面代码
public Form3()
{
InitializeComponent();
}
string connStr = "server=.;uid= ;pwd= ;database=";
//au=true是为新增功能,au=false 为修改功能
public bool au = true;
public string name;
//构造函数 初始化
public Form3(string username)
{
InitializeComponent();
this.name=username;
oneUser();
}
//初始化修改窗体
/// <summary>
/// 根据用户名获取数据,读出后显示在文本框,按位置
/// </summary>
public void oneUser()
{
using(SqlConnection conn=new SqlConnection(connStr))
{
string sql=string.Format("select UserName,UserPwd from weiqin where UserName='{0}'",name);
conn.Open();
SqlCommand cmd=new SqlCommand();
cmd.Connection=conn;
cmd.CommandText=sql;
SqlDataReader dr=cmd.ExecuteReader();
if(dr.Read())
{
textBox1.Text=dr[0].ToString();
textBox2.Text=dr[1].ToString();
textBox1.Enabled=false;
}
}
}
private void button1_Click(object sender, EventArgs e)
{
string username=textBox1.Text;
string pwd=textBox2.Text;
//新增功能
if(au==true)
{
using(SqlConnection conn=new SqlConnection(connStr))
{
string sql=string.Format("insert into weiqin(UserName,UserPwd) value('{0}','{1}')",username,pwd);
conn.Open();
SqlCommand cmd=new SqlCommand();
cmd.Connection=conn;
cmd.CommandText=sql;
int k=cmd.ExecuteNonQuery();
if(k>0)
{
MessageBox.Show("新增成功");
DialogResult=DialogResult.OK;
}
else
{
MessageBox.Show("新增失败");
return;
}
}
}
///修改功能
else
{
string connStr="server=.;uid=se;pwd=123456;database=weiqin";
using(SqlConnection conn=new SqlConnection(connStr))
{
string sql=string.Format("updata weiqin set UserPwd='{0}' where UserName='{1}'",pwd,username);
conn.Open();
SqlCommand cmd=new SqlCommand();
cmd.Connection=conn;
cmd.CommandText=sql;
int k=cmd.ExecuteNonQuery();
if(k>0)
{
MessageBox.Show("修改成功");
DialogResult=DialogResult.OK;
}
else
{
MessageBox.Show("修改失败");
return;
}
}
}
}
1.String s;和String s=null;和String s=“”;有什么区别? 答:针对这三种情况,使用out.println(s);的时候,第一个会出现异常,第二个会出现null;第三个会输出空 第一个只是定义啦一个String类型变量s,并没有给它赋初始值,在程序设计时,默认在使用一个变量的时候必须赋予它初值(降低风险); 2.类和结构的差别 1.值类型与引用类型 结构是值类型:值类型在堆栈上分配地址,所有的基类都是结构类型,例如int对应system.int32结构,string对应system.string结构,通过使用结构类型可以创建更多的值类型。 类是引用类型:引用类型在堆上分配地址。 堆栈的执行效率高,可是堆栈的资源有限,不适合处理大的逻辑复杂的对象。所以结构处理作为基类对待的小对象,而类处理某个商业逻辑。 因为结构是值类型所以结构之间的赋值可以创建新的结构,而类时引用类型,类之间的赋值只是赋值引用, 注: 1.虽然结构与类的类型不一样,可是他们的基类都是对象(object),c#中所有的类型都是object 2.虽然结构的初始化也是用啦New操作符,可是结构对象依然分配在堆栈上而不是堆上,如果不使用new,那么在初始化所有字段之前,字段都保持未赋值状态,且对象不可用, 2.继承性, 结构:不能从另一个结构或者类继承,本身也不能被继承,虽然结构没有明确的使用sealed,可是结构是隐式的sealed。 类:完全可扩展的,除非显示的声明sealed,否则类可以继承其他类的接口,自身继承也能 注,虽然机构不能被继承,可是结构能够继承接口,方法和类继承接口一样, 示例 interface iimage { void Paint(); } struct Picture:IImage { public void Paint() { painting code goes here } private int x,y,z;//other struct members } 3.内部接口 结构: 没有默认的构造函数,但是可以添加构造函数 没有析构函数 没有abstract 和sealed 不能有protected修饰符 可以不适用new初始化 在结构中初始化实例字段是错误的 类: 有默认的构造函数 有析构函数 可以使用abstract和sealed 有protected修饰符 必须使用new初始化 3.如何选择结构还是类 讨论结构与类的相同之处和差别以后,下面讨论如何使用结构还是类 1.堆栈的空间有限,对于大量的逻辑对象,创建类要比创建结构好一些 2.结构表示如点,矩形和颜色这样的轻量级对象,例如声明一个含有1000个点对象的数组 则将引用每个对象分配附加的内存,在此情况下,结构的成本呢较低。 3.在表的抽象和多级别的对象层次时,类是最好的选择 4.大多数情况下该类型只是一些数据时,结构时最佳的选择。