// 更新用的sql语句,分成段拼凑
string sql = string.Format("UPDATE Users SET NickName='{0}', FaceId={1},Sex='{2}',Age={3}",
txtNickName.Text.Trim(), Convert.ToInt32(picFace.Tag), cboSex.Text.Trim(), Convert.ToInt32(txtAge.Text.Trim()));
if (txtNewPwd.Text.Trim() != "") // 如果修改了密码就更新密码字段
{
//承接了上一个语句sql,因为有时候用户未修改密码
sql = string.Format("{0} ,LoginPwd='{1}' ", sql, txtNewPwd.Text.Trim());
}
把整个窗体mainForm传给了窗体personalInfoForm
personalInfoForm.mainForm=this;
在personalInfoForm中
public MainForm mainForm; // 主窗体
修改了用户的资料信息之后
mainForm.ShowSelfInfo(); // 更新主窗体中的个人信息
//记录登录的用户Id
class UserHelper
{
public static int loginId; //登录的用户Id
}
UserHelper.loginId
类中编写的全局变量,相当于session记录当前用户的qq号,可以再多个窗口使用
// 循环添加好友列表
while (dataReader.Read())
{
// 创建一个SideBar项
//SbItem(显示的文字 图像的索引)
SbItem item = new SbItem((string)dataReader["NickName"], (int)dataReader["FaceId"]);
item.Tag = (int)dataReader["FriendId"]; // 将号码放在Tag属性中
// SideBar中的组可以通过数组的方式访问,按照添加的顺序索引从0开始
sbFriends.Groups[0].Items.Add(item); // 向SideBar的“我的好友”组中添加项
}
// 窗体加载时显示头像图片
private void FacesForm_Load(object sender, EventArgs e)
{
for (int i = 0; i < ilFaces.Images.Count; i++)
{
lvFaces.Items.Add(i.ToString());//从0-99的数字
lvFaces.Items[i].ImageIndex = i;//找到了对应于i的imagelist的图片
}
}
class DBHelper
{
private static string connString = "Data Source=.;Initial Catalog=MyQQ;User ID=sa;Pwd=123";
public static SqlConnection connection = new SqlConnection(connString);
}
// 窗体加载时,填充数据集
private void SearchFriendForm_Load(object sender, EventArgs e)
{
// 实例化数据集和数据适配器并填充
string sql = "SELECT Id, NickName, Age, Sex FROM Users";
dataAdapter = new SqlDataAdapter(sql, DBHelper.connection);
dataSet = new DataSet("MyQQ");//从数据库myqq里面找数据
dataAdapter.Fill(dataSet, "Users");//自定义虚拟表名users,用fili()填充dataset
// 指定DataGridView的数据源
dgvBasicResult.DataSource = dataSet.Tables[0];
dgvAdvancedResult.DataSource = dataSet.Tables[0];
}
重新填充dataset的数据
dataAdapter.SelectCommand.CommandText = sql;
dataSet.Tables[0].Clear();
dataAdapter.Fill(dataSet, "Users");
// DataGridView没有选中任何一行
if (dgvBasicResult.SelectedRows.Count == 0)
{
MessageBox.Show("请选择一个好友!", "操作", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
// 确保第一个单元格有值
else if (dgvBasicResult.SelectedRows[0].Cells[0] != null)
{
// 获得DataGridView中选中的行的第一个单元格的值
friendId = int.Parse(dgvBasicResult.SelectedRows[0].Cells[0].Value.ToString());
}
获取下拉菜单选择的菜单
string sexCondition = cboSex.Text; // 性别条件
sql = "SELECT @@Identity FROM Users"; // 查询新增加的记录的标识号id
command.CommandText = sql;
myQQNum = Convert.ToInt32(command.ExecuteScalar()); // 强制类型转换会出错
SELECT TOP 1 * FROM users 这个是SQLSERVER选择表中符合条件的前N行记录的语句
SELECT TOP 1 nickname FROM users 查询user表中第一行对应的 nickname列
SELECT TOP 5 nickname FROM users 查询user表中前5行对应的nickname 列
关于第三方控件的使用
sbFriends.SeletedItem.Parent.Items.Remove(sbFriends.SeletedItem);
SbItem item = new SbItem((string)dataReader["NickName"], (int)dataReader["FaceId"]);
item.Tag = (int)dataReader["FriendId"]; // 将好友号码放在Tag属性中
// SideBar中的组可以通过数组的方式访问,按照添加的顺序索引从0开始
sbFriends.Groups[0].Items.Add(item); // 向SideBar的“我的好友”组中添加项
添加陌生人为好友时
sbFriends.SeletedItem.Parent.Items.Remove(sbFriends.SeletedItem);
ShowFriendList(); // 更新好友列表
if (sbFriends.VisibleGroup == sbFriends.Groups[0])//判断展开的删除好友的parednt是不是我的好友
判断时间空间有没有在运行
tmrChatRequest.Enabled == true
// 控制喇叭闪烁
int messageImageIndex=0;
private void tmrAddFriend_Tick(object sender, EventArgs e)
{
// 反复修改它的图像
messageImageIndex = messageImageIndex == 0 ? 1:0;
tsbtnMessageReading.Image = ilMessage.Images[messageImageIndex];
}
ChatForm chatForm = new ChatForm();
//friendId nickName faceId是chatForm窗体的公共的全局变量 这是向窗体传多个参数
chatForm.friendId = Convert.ToInt32(e.Item.Tag); // 号码
chatForm.nickName = e.Item.Text; // 昵称
chatForm.faceId = e.Item.ImageIndex; // 头像
chatForm.Show();
string sql = string.Format("UPDATE Users SET NickName='{0}', FaceId={1},Sex='{2}',Age={3}",
txtNickName.Text.Trim(), Convert.ToInt32(picFace.Tag), cboSex.Text.Trim(), Convert.ToInt32(txtAge.Text.Trim()));
if (txtNewPwd.Text.Trim() != "") // 如果修改了密码就更新密码字段
{
//承接了上一个语句sql,因为有时候用户未修改密码
sql = string.Format("{0} ,LoginPwd='{1}' ", sql, txtNewPwd.Text.Trim());
}
把整个窗体mainForm传给了窗体personalInfoForm
personalInfoForm.mainForm=this;
在personalInfoForm中
public MainForm mainForm; // 主窗体
修改了用户的资料信息之后
mainForm.ShowSelfInfo(); // 更新主窗体中的个人信息
//记录登录的用户Id
class UserHelper
{
public static int loginId; //登录的用户Id
}
UserHelper.loginId
类中编写的全局变量,相当于session记录当前用户的qq号,可以再多个窗口使用
// 循环添加好友列表
while (dataReader.Read())
{
// 创建一个SideBar项
//SbItem(显示的文字 图像的索引)
SbItem item = new SbItem((string)dataReader["NickName"], (int)dataReader["FaceId"]);
item.Tag = (int)dataReader["FriendId"]; // 将号码放在Tag属性中
// SideBar中的组可以通过数组的方式访问,按照添加的顺序索引从0开始
sbFriends.Groups[0].Items.Add(item); // 向SideBar的“我的好友”组中添加项
}
// 窗体加载时显示头像图片
private void FacesForm_Load(object sender, EventArgs e)
{
for (int i = 0; i < ilFaces.Images.Count; i++)
{
lvFaces.Items.Add(i.ToString());//从0-99的数字
lvFaces.Items[i].ImageIndex = i;//找到了对应于i的imagelist的图片
}
}
class DBHelper
{
private static string connString = "Data Source=.;Initial Catalog=MyQQ;User ID=sa;Pwd=123";
public static SqlConnection connection = new SqlConnection(connString);
}
// 窗体加载时,填充数据集
private void SearchFriendForm_Load(object sender, EventArgs e)
{
// 实例化数据集和数据适配器并填充
string sql = "SELECT Id, NickName, Age, Sex FROM Users";
dataAdapter = new SqlDataAdapter(sql, DBHelper.connection);
dataSet = new DataSet("MyQQ");//从数据库myqq里面找数据
dataAdapter.Fill(dataSet, "Users");//自定义虚拟表名users,用fili()填充dataset
// 指定DataGridView的数据源
dgvBasicResult.DataSource = dataSet.Tables[0];
dgvAdvancedResult.DataSource = dataSet.Tables[0];
}
重新填充dataset的数据
dataAdapter.SelectCommand.CommandText = sql;
dataSet.Tables[0].Clear();
dataAdapter.Fill(dataSet, "Users");
// DataGridView没有选中任何一行
if (dgvBasicResult.SelectedRows.Count == 0)
{
MessageBox.Show("请选择一个好友!", "操作", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
// 确保第一个单元格有值
else if (dgvBasicResult.SelectedRows[0].Cells[0] != null)
{
// 获得DataGridView中选中的行的第一个单元格的值
friendId = int.Parse(dgvBasicResult.SelectedRows[0].Cells[0].Value.ToString());
}
获取下拉菜单选择的菜单
string sexCondition = cboSex.Text; // 性别条件
sql = "SELECT @@Identity FROM Users"; // 查询新增加的记录的标识号id
command.CommandText = sql;
myQQNum = Convert.ToInt32(command.ExecuteScalar()); // 强制类型转换会出错
SELECT TOP 1 * FROM users 这个是SQLSERVER选择表中符合条件的前N行记录的语句
SELECT TOP 1 nickname FROM users 查询user表中第一行对应的 nickname列
SELECT TOP 5 nickname FROM users 查询user表中前5行对应的nickname 列
关于第三方控件的使用
sbFriends.SeletedItem.Parent.Items.Remove(sbFriends.SeletedItem);
SbItem item = new SbItem((string)dataReader["NickName"], (int)dataReader["FaceId"]);
item.Tag = (int)dataReader["FriendId"]; // 将好友号码放在Tag属性中
// SideBar中的组可以通过数组的方式访问,按照添加的顺序索引从0开始
sbFriends.Groups[0].Items.Add(item); // 向SideBar的“我的好友”组中添加项
添加陌生人为好友时
sbFriends.SeletedItem.Parent.Items.Remove(sbFriends.SeletedItem);
ShowFriendList(); // 更新好友列表
if (sbFriends.VisibleGroup == sbFriends.Groups[0])//判断展开的删除好友的parednt是不是我的好友
判断时间空间有没有在运行
tmrChatRequest.Enabled == true
// 控制喇叭闪烁
int messageImageIndex=0;
private void tmrAddFriend_Tick(object sender, EventArgs e)
{
// 反复修改它的图像
messageImageIndex = messageImageIndex == 0 ? 1:0;
tsbtnMessageReading.Image = ilMessage.Images[messageImageIndex];
}
ChatForm chatForm = new ChatForm();
//friendId nickName faceId是chatForm窗体的公共的全局变量 这是向窗体传多个参数
chatForm.friendId = Convert.ToInt32(e.Item.Tag); // 号码
chatForm.nickName = e.Item.Text; // 昵称
chatForm.faceId = e.Item.ImageIndex; // 头像
chatForm.Show();