我已经在visual studio中使用c#创建了一个简单的用户名和密码登录表单,然后对其进行了编码,以便在两个文本框中输入的任何用户名和密码都保存为字符串...现在我想通过那些字符串作为参数并将它们存储到SQL查询中...任何想法我会怎么做呢?
答案 0 :(得分:4)
我强烈建议 NOT 将密码存储为纯文本。而是查看散列密码方法。
首先,您需要指定连接字符串。这可以在config
文件中完成:
string connectionString = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
现在您想要从string myQuery = "INSERT INTO MyTable (UserNameColumn,PasswordColumn) VALUES (@UserName, @Password)";
文件中读取连接字符串,您可以在C#代码中执行以下操作:
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand(myQuery, connection))
{
cmd.Parameters.Add("@UserName", SqlDbType.NVarChar).Value = UserNameTextBox.Text;
cmd.Parameters.Add("@Password", SqlDbType.NVarChar).Value = PasswordTextBox.Text;
connection.Open();
cmd.ExecuteNonQuery();
}
}
我假设您要插入记录。如果要更新记录,则需要更改查询。用于插入记录:
using System.Configuration;
最后,为了执行查询并传递我们的参数,我们可以做
select * from uncrosstab( select * from tablename) as ct()
别忘了包含名称空间select Name,budget,CASE WHEN bmon='BudMnt1' THEN CONVERT(DATE, '01-JAN-2015')
WHEN bmon='BudMnt2' THEN CONVERT(DATE, '01-FEB-2015')
WHEN bmon='BudMnt3' THEN CONVERT(DATE, '01-MAR-2015')
WHEN bmon='BudMnt4' THEN CONVERT(DATE, '01-APR-2015')
WHEN bmon='BudMnt5' THEN CONVERT(DATE, '01-MAY-2015')
WHEN bmon='BudMnt6' THEN CONVERT(DATE, '01-JUN-2015')
WHEN bmon='BudMnt7' THEN CONVERT(DATE, '01-JUL-2015')
WHEN bmon='BudMnt8' THEN CONVERT(DATE, '01-AUG-2015')
WHEN bmon='BudMnt9' THEN CONVERT(DATE, '01-SEP-2015')
WHEN bmon='BudMnt10' THEN CONVERT(DATE, '01-OCT-2015')
WHEN bmon='BudMnt11' THEN CONVERT(DATE, '01-NOV-2015')
WHEN bmon='BudMnt12' THEN CONVERT(DATE, '01-DEC-2015')
END AS bmon from tablename
UNPIVOT
(
budget
FOR bmon IN (BudMnt1,
BudMnt2,
BudMnt3,
BudMnt4,
BudMnt5,
BudMnt6,
BudMnt7,
BudMnt8,
BudMnt9,
BudMnt10,
BudMnt11,
BudMnt12)
) p