【发布时间】:2016-08-11 16:23:14
【问题描述】:
我在 mysql 中有一个名为 Users 的表,它有 4 行。 ID、姓名、通行证、公司。
我尝试在 c# WPF 中创建一个应用程序来执行此操作:添加用户并提供必须提供的值,并且还必须提供他所属的公司。
现在,我需要做的是找到一种方法来提供公司名称并说:如果公司名称是 Google,则在字段 company 中的用户中放置 id 1
ID Name
1 Google
2 Facebook
3 Instagram
4 etc_etc
代码是:
public bool AddUser(string userid, string username, string password, int companyId)
{
return ExecQuery("insert into users (id, name, pass, companyid) values(@id, @name, @pass, @cid)",
cmd =>
{
cmd.Parameters.AddWithValue("@id", userid);
cmd.Parameters.AddWithValue("@name", username);
cmd.Parameters.AddWithValue("@pass", password);
cmd.Parameters.AddWithValue("@cid", companyId);
return cmd;
});
}
public bool AddCompany(string name)
{
return ExecQuery("insert into companies (name) values(@name)",
cmd =>
{
cmd.Parameters.AddWithValue("@name", name);
return cmd;
});
}
【问题讨论】:
-
那么问题是如何获取插入公司的ID?
-
是的,用户写名字时如何获取插入公司的id。
-
进行公司查询,否则您可能会弄乱您的数据。 “Acme Freight”在公司表中可能有很多行。另外,散列你的password。
-
你能告诉我怎么做吗?我确实对我的密码进行了哈希处理,但我会更改加密代码,因为它真的很糟糕。公共静态字符串 GenerateSHA512String(string inputString) { SHA512 sha512 = SHA512Managed.Create(); byte[] bytes = Encoding.UTF8.GetBytes(inputString); byte[] hash = sha512.ComputeHash(bytes); StringBuilder sb = new StringBuilder(); for (int i = 0; i
-
只要使用mysql内置的
Password()函数即可。你的密码栏是 varchar(100) 还是 text。