| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3227 人关注过本帖
标题:一个解决方案,多个项目
只看楼主 加入收藏
mlrh3838
Rank: 1
等 级:新手上路
威 望:1
帖 子:199
专家分:0
注 册:2007-6-14
收藏
 问题点数:0 回复次数:5 
一个解决方案,多个项目

一个解决方案 中 有两个项目 项目A 项目B
建一个登录窗口 frmLogin.cs

数据库表如下:

UserName Password Kind
--------- -------- -----
1111 1111 0
2222 2222 1


当用 1111 这个用户名登录 kind=0 时进入 项目A 的Main.cs主窗口
当用 2222 这个用户名登录 kind=1 时进入 项目B 的Main.cs主窗口

搜索更多相关主题的帖子: 项目 数据库 方案 kind Main 
2007-07-02 10:51
卡卡艾
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:672
专家分:0
注 册:2007-4-3
收藏
得分:0 

连接数据库,把Kind值取出来,判断以下:

string myStr="Data Source=服务器;Initial Catalog=数据库;Integrated Security=SSPI";
SqlConnection conn=new SqlConnection(myStr);
try
{
conn.Open();
string SQL = "select kind from 表 where User_name='"+ textBox1.Text +"' ";
//根据相应的UserName取出相应的Kind值.

SqlCommand myCom = new SqlCommand(SQL,conn);
string kind =(string)myCom.ExecuteScalar();
switch (kind)
{
case 0
A.Show();
break;
case 1
B.Show();
break;

}

}
catch
{
MessageBox.Show("连接数据库出错!","提示",MessageBoxButtons.OK ,MessageBoxIcon.Stop );
this.Cursor = Cursors.Default ;
return;
}



conn.Close();

去试一下吧,有问题再发上来..大家可以帮你..


革命尚未成功,同志仍需努力-----+++
2007-07-02 12:25
mlrh3838
Rank: 1
等 级:新手上路
威 望:1
帖 子:199
专家分:0
注 册:2007-6-14
收藏
得分:0 
谢谢上面这位兄弟, "A.Show()" 项目名调用Show()方法 没想这么简单

this.Cursor = Cursors.Default ; 这是什么意思

请问 Login.cs 是不是也要建个项目为 LOGIN 呢?

要是这样的话,那么整个解决方案就应该以 LOGIN 项目的 Login.cs 为首启窗口

[此贴子已经被作者于2007-7-2 13:11:15编辑过]


2007-07-02 12:51
mlrh3838
Rank: 1
等 级:新手上路
威 望:1
帖 子:199
专家分:0
注 册:2007-6-14
收藏
得分:0 

一个解决方案,三个项目,分别了 "LOGIN" "采购部" "仓储部"
会员表如下:
uid username password kind
1 111111 111111 仓储
2 222222 222222 采购

下边源码是 LOGIN 项目中 Login.cs 登录窗口 检测输入的用户名和密码后,如正确匹配,取出 Kind 字段值
根据 kind 的值 登录 "采购部"项目主窗口 Main.cs 或 "仓储部"项目 的 主窗口 Main.cs

namespace LOGIN
{
public partial class Login : Form
{
public Login()
{
InitializeComponent();

this.btnOK.Enabled = false; //初始化登录按钮不可用
this.txtUsername.Tag = false; //初始用户名控件属性
this.txtPassword.Tag = false; //初始密码控件属性

}

string mKind = "";

private void Login_Load(object sender, EventArgs e)
{

}

private void btnOK_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(Class1.connectString); //创建链接

string sql = "SELECT * FROM [会员表] WHERE (username ='" + txtUsername.Text.Trim().Replace("'", "_") + "')"; //定义SQL语句

try
{
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataReader reader = cmd.ExecuteReader();

//判断用户是否存在
if (!reader.HasRows)
{
MessageBox.Show("该账号不存在!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Error);
txtUsername.Text = string.Empty;
txtPassword.Text = string.Empty;
txtUsername.Focus();
return;
}
while (reader.Read())
{
//判断此用户的密码是否与数据库中的匹配
if (reader["password"].ToString().Trim() != txtPassword.Text.Trim().Replace("'", "_"))
{
MessageBox.Show("难道你忘记了密码了吗?", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Error);
txtPassword.Text = string.Empty;
txtPassword.Focus();
return;
}
else
{
//匹配时,取出Kind字段值
mKind = reader["kind"].ToString().Trim();
}
}

switch (mKind)
{
case "仓储":
.................
.................

break;
case "采购":
.................
.................

break;
default:
MessageBox.Show("您不是本单位成员!!!", "登录超出界限!", MessageBoxButtons.OK, MessageBoxIcon.Error);
break;
}
reader.Close();
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message, "提示::", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
//关闭数据库连接
con.Close();
}
}



#region 控件验证

//---------------------获取下一个焦点前验证-------------------------
private void txtUsername_Validating(object sender, CancelEventArgs e)
{
TextBox tb = (TextBox)sender;

if (tb.Text.Length < 6)
{
tb.BackColor = Color.Yellow;
tb.Tag = false;
}
else
{
tb.BackColor = System.Drawing.SystemColors.Window;
tb.Tag = true;
}

ValidateOK();
}


//----------------控件更改Text属性值时引发------------------------
private void txtUsername_TextChanged(object sender, EventArgs e)
{
TextBox tb = (TextBox)sender;

if (tb.Text.Length < 6)
{
tb.Tag = false;
tb.BackColor = Color.Yellow;
}
else
{
tb.Tag = true;
tb.BackColor = SystemColors.Window;
}

ValidateOK();
}

//----------------根据控件Tag属性来启用btnOK按钮------------------------
private void ValidateOK()
{
this.btnOK.Enabled = ((bool)(this.txtUsername.Tag) && (bool)(this.txtPassword.Tag));
}

#endregion

}
}


求红色省略号处代码

[此贴子已经被作者于2007-7-2 14:51:08编辑过]


2007-07-02 14:42
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
建议你弄个MDI..根据不同的kind值,就加载不同的窗体到MDI中..

飘过~~
2007-07-02 16:21
mlrh3838
Rank: 1
等 级:新手上路
威 望:1
帖 子:199
专家分:0
注 册:2007-6-14
收藏
得分:0 
首先谢谢各位

问题已经解决了,在LOGIN 项目中添加其它项目引用

switch (mKind)
{
case "企业":
this.Hide();
企业管理.Main frm0 = new 企业管理.Main();
frm0.ShowDialog();
break;
case "仓储":
this.Hide();
仓储部.Main frm1 = new 仓储部.Main();
frm1.ShowDialog();
break;
case "采购":
this.Hide();
采购部.Main frm2 = new 采购部.Main();
frm2.ShowDialog();
break;
case "销售":
this.Hide();
销售部.Main frm3 = new 销售部.Main();
frm3.ShowDialog();
break;
default:
MessageBox.Show("您不是本单位成员!!!", "登录超出界限!", MessageBoxButtons.OK, MessageBoxIcon.Error);
break;
}

2007-07-03 10:33
快速回复:一个解决方案,多个项目
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016796 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved