如何将数据字符串发送到SQL查询?

时间:2015-10-23 09:24:15

标签: c# sql string visual-studio parameters

我已经在visual studio中使用c#创建了一个简单的用户名和密码登录表单,然后对其进行了编码,以便在两个文本框中输入的任何用户名和密码都保存为字符串...现在我想通过那些字符串作为参数并将它们存储到SQL查询中...任何想法我会怎么做呢?

1 个答案:

答案 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