string作为新类变量

时间:2016-06-20 10:59:33

标签: c# sql

我无法搞清楚这一点,我想把我发送的名称和方法一起作为我尝试制作的新类变量的名称。这就是我现在所拥有的。

public void GetDier(string naam) 
{
    string query = "SELECT * FROM [Dieren] WHERE Diersoort = '" + naam + "'";
    sqlconn.Open();
    SqlCommand cmd = new SqlCommand(query, sqlconn);
    SqlDataReader DR = cmd.ExecuteReader();
    string diernaam = DR.GetString(1);
    int currency = DR.GetInt32(2);
    int TPnodig = DR.GetInt32(3);
    Dieren naam = new Dieren(diernaam, TPnodig, currency);
}

我想把字符串naam作为新dier的新名称,正如我在上面的代码段中所做的那样。

2 个答案:

答案 0 :(得分:1)

这里有一个更安全的方法来从db获取数据:

public Dieren GetDier(string naam)
        {
            var con = ConfigurationManager.ConnectionStrings["Yourconnection"].ToString();
Dieren naamValue= new Dieren();
            using (SqlConnection myConnection = new SqlConnection(con))
            {
                string oString ="SELECT * FROM [Dieren] WHERE Diersoort = @Diersoort";
                SqlCommand oCmd = new SqlCommand(oString, myConnection);
                oCmd.Parameters.AddWithValue("@Diersoort", naam);           
                myConnection.Open();
                using (SqlDataReader oReader = oCmd.ExecuteReader())
                {
                    while (oReader.Read())
                    {    
                        naamValue.naam= oReader["naam"].ToString();                       
                    }

                    myConnection.Close();
                }               
            }
            return naamValue;
        }

答案 1 :(得分:0)

您不能将变量用作另一个变量的名称。老实说,这没有意义。变量的名称仅对您作为程序员有用,而不是对代码的最终结果有用。

另请注意,您的SQL容易受到SQL注入攻击。始终使用参数化查询!

相关问题