锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / 刚毕业学生C#项目开发总结
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

刚毕业学生C#项目开发总结


通过IP连接局域网访问数据库

<add name="connString" connectionString="Data Source=192.168.3.15;Initial Catalog=langtest;Integrated Security=False;User ID=sa;Password=123456" ></add>

根据TextBox输入的内容,查询条件是一个或者多个时的代码处理问题,查找数据库中的信息显示到DataGrideView控件中


思考误区:刚开始一直想的是获取textBox里的内容不是空来判断输入情况,没想用textBox.Text里长度不为零来判断,而且这些输入的查询条件是一个或多个的处理不很清楚。
string swhere = "";
if (textBox_Login.Text.Length > 0)
swhere = "username='" + textBox_Login.Text + "'";
if (textBox_User.Text.Length > 0)
{
if (swhere.Length > 0) swhere += " and ";
swhere += "realname='" + textBox_User.Text + "'";
}
if (swhere.Length == 0)
{
MessageBox.Show("请输入查询条件!");
return;
}

在线用户的显示,数据查询条件是在登录时间和登录IP不为空且登录时间距离当前时间不超过2小时:直接查找把登录时间与当前时间差的值作为搜索条件,主要是SQL语句

DataTable dt = DBHelper.GetDataSet("select id,username,realname,mobile,email,status,wx_id,qq_id from userbase where login_time is not null and datediff(hh,login_time,getdate())<=2 and login_ip is not null");
写一个查询函数在窗口打开时运行,在刷新事件下调用查询函数,实现刷新当前用户列表。

修改DataGrideView表中子节点不为0时的行背景色:在绑定List之前,从数据库中多连查找出数据W_ID


思考误区:子节点和父节点的相应关系不清楚,思路不清楚,一直在根据代码的意思在做相应的改动,不知道子父节点的一一对应关系。

DataTable dt = new DataTable();
dt = DBHelper.GetDataSet("select PropertyBase.P_ID,PropertyBase.P_Name,WeightBase.W_ID from WeightBase left join PropertyBase on WeightBase.P_ID=PropertyBase.P_ID where T_ID=" + t_ID + " and W_ParentID=0");
data_List.DataSource = dt;
for (int i = 0; i < data_List.Rows.Count; i++)
{
string sid = data_List.Rows[i].Cells["W_ID"].Value.ToString();//表中第i行单元格"W_ID"的数据
DataTable dcount = DBHelper.GetDataSet("select count(*) from WeightBase where W_ParentID=" + sid); //查找W_ID和W_ParentID相等的数据,也就是子节点
DataRow dr = dcount.Rows[0];
if (dr[0].ToString() == "0")//子节点数据为0不存在时继续循环,数据不为0把这行背景色换成Red
continue;
data_List.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
data_List.Columns["W_ID"].Visible = false;  //隐藏W_ID列

在btn事件中怎么获取W_ID数据:btn的Tag属性,用来标记,方便获取。


思考误区:开始直接想在Band_BtnName()函数的判断btn_down.Text属性中直接显示子节点的信息,然后运行发现不能实现点击子节点按钮显示信息的功能,不知道btn的Tag属性,而且知道这个属性以后也不太清楚这个属性的具体用法。

if (dt.Rows[i]["W_Straight"].ToString() == "1" && dt.Rows[i]["W_True"].ToString() == "0" && dt.Rows[i]["W_False"].ToString() == "0" && dt.Rows[i]["W_ParentID"].ToString() != "0")
{
btn_down.Text = dt.Rows[i]["P_Name"].ToString();
btn_down.Tag = dt.Rows[i]["W_ID"].ToString();//利用Tag设置标签,标记W_ID的值
btn_left.Text = True_Name;
btn_right.Text = False_Name;
btn_left.Enabled = false;
btn_right.Enabled = false;
return;
}
在按钮事件中:
Button btn = (Button)sender;// 强制将传递过来的 sender 参数(object)转换成 Button
string sid = (string)btn.Tag;//获取btn的标记

将子节点的数据显示到右方的相应文本框中,封装获取搜索数据函数,通过传递W_ID的值来完成数据的显示。
private void ShowRightDataBySub(string sid)
{
DataTable dtTab = new DataTable();
dtTab = DBHelper.GetDataSet("select * from WeightBase where W_ID=" + sid);

            if (dtTab.Rows.Count <= 0)
{
return;
}
w_ID = dtTab.Rows[0]["W_ID"].ToString();
if (Convert.ToBoolean(dtTab.Rows[0]["W_Flg"].ToString()) == false)
{
rdb_No.Checked = true;
}
else
{
rdb_Yes.Checked = true;
GetRangeData();
}
txt_VExplain.Text = dtTab.Rows[0]["W_Explain"].ToString();
cmb_PropertyName.SelectedValue = dtTab.Rows[0]["P_ID"].ToString();
txt_Value.Text = dtTab.Rows[0]["W_Value"].ToString();
txt_Fraction.Text = dtTab.Rows[0]["W_Fraction"].ToString();
}
然后在btn事件中调用:
ShowRightDataBySub(sid);

总结


看书多了解基础知识,工作态度和时间紧迫性,工作的方法:先写出一步步解决问题的具体思路,然后按照思路来一步步的解决问题。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内