Windows Form -----内容(3)
使用到的代码:
//链接类
class DBconnection
{
public const string CONNECTIONSTRING = "server=.;database=mydb;uid=sa;pwd=5587725";
}
//实体类
class Nation
{
//构造函数
public Nation(string code, string name)
{
_Name = name;
_Code = code;
}
private string _Code;
public string Code
{
get { return _Code; }
set { _Code = value; }
}
private string _Name;
public string Name
{
get { return _Name; }
set { _Name = value; }
}
public override string ToString()
{
return Name;
}
}
class Info
{
private string _Code;
public string Code
{
get { return _Code; }
set { _Code = value; }
}
private string _Name;
public string Name
{
get { return _Name; }
set { _Name = value; }
}
private bool _Sex;
public bool Sex
{
get { return _Sex; }
set { _Sex = value; }
}
private string _Nation;
public string Nation
{
get { return _Nation; }
set { _Nation = value; }
}
private DateTime _Birthday;
public DateTime Birthday
{
get { return _Birthday; }
set { _Birthday = value; }
}
}
//数据访问类
class NationDA
{
private SqlConnection _Conn;
private SqlCommand _Cmd;
private SqlDataReader _DR;
public NationDA()
{
_Conn = new SqlConnection(DBconnection.CONNECTIONSTRING);
_Cmd = _Conn.CreateCommand();
}
public List<Nation> Select()
{
List<Nation> list = new List<Nation>();
_Cmd.CommandText = "select * from Nation";
try
{
_Conn.Open();
_DR = _Cmd.ExecuteReader();
while (_DR.Read())
{
Nation data = new Nation(_DR["Code"].ToString(),_DR["Name"].ToString());
list.Add(data);
}
}
finally
{
_Conn.Close();
}
return list;
}
public Nation Select(string code)
{
_Cmd.CommandText = "select * from Nation where Code=@code";
_Cmd.Parameters.Clear();
_Cmd.Parameters.AddWithValue("@code",code);
_DR = _Cmd.ExecuteReader();
try
{
_Conn.Open();
if (_DR.Read())
{
Nation data = new Nation(_DR["Code"].ToString(), _DR["Name"].ToString());
return data;
}
else
{
return null;
}
}
finally
{
_Conn.Close();
}
}
}
class InfoDA
{
private SqlConnection _Conn;
private SqlCommand _Cmd;
private SqlDataReader _DR;
public InfoDA()
{
_Conn = new SqlConnection(DBconnection.CONNECTIONSTRING);
_Cmd = _Conn.CreateCommand();
}
public void Insert(string code,string name,bool sex,string nation,DateTime birthday)
{
_Cmd.CommandText = "insert into info values(@code,@name,@sex,@nation,@birthday)";
_Cmd.Parameters.Clear();
_Cmd.Parameters.AddWithValue("@code",code);
_Cmd.Parameters.AddWithValue("@name", name);
_Cmd.Parameters.AddWithValue("@sex", sex);
_Cmd.Parameters.AddWithValue("@nation", nation);
_Cmd.Parameters.AddWithValue("@birthday", birthday);
try
{
_Conn.Open();
_Cmd.ExecuteNonQuery();
}
finally
{
_Conn.Close();
}
}
public Info Select(string code)
{
_Cmd.CommandText = "select * from info where Code=@code";
_Cmd.Parameters.Clear();
_Cmd.Parameters.AddWithValue("@code",code);
try
{
_Conn.Open();
_DR = _Cmd.ExecuteReader();
if (_DR.Read())
{
Info data = new Info();
data.Code = _DR["Code"].ToString();
data.Name = _DR["Name"].ToString();
data.Nation = _DR["Nation"].ToString();
data.Sex = Convert.ToBoolean(_DR["Sex"]);
data.Birthday = Convert.ToDateTime(_DR["Birthday"]);
return data;
}
else
{
return null;
}
}
finally
{
_Conn.Close();
}
}
}
//form类
private void Form1_Load(object sender, EventArgs e)
{
//填充民族下拉列表
//1.查处数据
List<Nation> list = new NationDA().Select();
//2.填进去
list.Insert(0,new Nation("-1","==请选择=="));
cbBoxNation.DataSource = list;
cbBoxNation.DisplayMember = "Name";
cbBoxNation.ValueMember = "Code";
}
private void button2_Click(object sender, EventArgs e)
{
//向数据库添加人员信息
//1.把界面上的值取出来
string code = txtCode.Text;
string name = txtName.Text;
bool sex=rbnboy.Checked;//如果选的“男”,返回true;如果选“女”,返回 false,不用写if判断了
string nation = (cbBoxNation.SelectedItem as Nation).Code;
DateTime birthday = dtbirthday.Value;
//2.送回数据库中
InfoDA data = new InfoDA();
data.Insert(code, name, sex, nation, birthday);
//3.清空
clearinput();
}
private void clearinput()
{
txtCode.Text = "";
txtName.Text = "";
rbnboy.Checked = true;
cbBoxNation.SelectedIndex = 0;
dtbirthday.Value = new DateTime(1880, 2, 2);
}
private void button1_Click(object sender, EventArgs e)
{
clearinput();
}
private void txtCode_TextChanged(object sender, EventArgs e)
{
//1.把值读出来
string checkcode = txtCode.Text;
//2.到数据库去检查
InfoDA da = new InfoDA();
Info data = da.Select(checkcode);
if (data!=null)
{
//3.提示
lbtishi.Text = "此代号已存在";
btnAdd.Enabled = false;
}
else
{
lbtishi.Text = "";
btnAdd.Enabled = true;
}
}