c#将参数从项目传递到另一个项目

时间:2016-09-19 11:34:54

标签: c#

我正在使用c#创建一个Windows桌面应用程序,我的解决方案有两个项目

第一个是一个项目,它包含登录系统的所有GUI和类(使用SQL db),成功登录后,我的函数返回实际用户的完整数据: / p>

private void Login(string User, string Pass)
{
    DataTable Table = new DataTable();
    Table = UserConnecction.Log_in(User, Pass);
    int Count = Table.Rows.Count;
    switch (Count)
    {
        case 1:
            User_info.UserID = Convert.ToInt32(Table.Rows[0][0]);
            User_info.UserName = Table.Rows[0][1].ToString();
            User_info.Password = Table.Rows[0][2].ToString();
            User_info.Email = Table.Rows[0][3].ToString();
            User_info.Pack = Convert.ToInt32(Table.Rows[0][4]);
            MessageBox.Show("" + User_info.UserID);
            Main Main = new Main(User_info.UserName);
            Main.ShowDialog();
            this.Hide();
            break;

        case 0:
        default:
            MessageBox.Show("Incorrect Login ! ");
            break;

    }
}

我的第二个解决方案包含一些需要ID的{​​{1}}的函数,所以我基本上希望在用户登录时将该参数传递给seonce项目< / p>

我已经尝试使用第一个项目作为参考,但似乎你只能使用函数和类而不传递参数,因为它总是会显示0!

谢谢!

1 个答案:

答案 0 :(得分:-1)

您的“主要”项目是表单应用程序。您需要通过添加引用引用第二个项目(并单击项目选项卡)并检查所需的项目。

然后在你的第一个项目中,在button_click处理程序或你可以使用的东西:

   public void Button_loginHandler()
   {
       var x = new namespaceSecondProject.Class(constructor info);
   }

所以如果我有一个项目(你班上的第二个项目):

namespace TestProject
{
    public class User
    {
        public string Username {get; set;}
        public string Password {get; set;}
        public datetime LastLoginDate {get;set;}

        public void SetLastLogin()
        {
            LastLoginDate = datetime.now;
       }
    }
}

在您的第一个项目(您的Windows窗体)中:您可以使用:

var newUser = new TestProject.User{ Username = "me", Password = "you"};

如果你想使用一个函数,那就是

  newUser.SetLastLogin();

请注意,这没有任何意义,但希望看到你可以像你想要的那样使用类和函数。