Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# sql server检索和更新(windows phone 7)_C#_Sql Server_Windows Phone 7 - Fatal编程技术网

C# sql server检索和更新(windows phone 7)

C# sql server检索和更新(windows phone 7),c#,sql-server,windows-phone-7,C#,Sql Server,Windows Phone 7,我有一个检索代码: [WebMethod] public List<Hawker> retrievehawker() { List<Hawker> retrievehawker = new List<Hawker>(); string qry = @"select hawkername, address, postal, xcoord, ycoord, popularity from uploadphoto"; SqlConnect

我有一个检索代码:

[WebMethod]
public List<Hawker> retrievehawker()
{
    List<Hawker> retrievehawker = new List<Hawker>();

    string qry = @"select hawkername, address, postal, xcoord, ycoord, popularity from uploadphoto";

    SqlConnection conn = new SqlConnection(connString);
    SqlCommand cmd = conn.CreateCommand();
    cmd.CommandText = qry;

    conn.Open();
    SqlDataReader mySqlDataReader = cmd.ExecuteReader();
    while (mySqlDataReader.Read())
    {
        Hawker retrieveHawker = new Hawker();
        retrieveHawker.hawkername = Convert.ToString(mySqlDataReader["hawkername"]);
        retrieveHawker.address = Convert.ToString(mySqlDataReader["address"]);
        retrieveHawker.postal = Convert.ToString(mySqlDataReader["postal"]);
        retrieveHawker.xcoord = Convert.ToDouble(mySqlDataReader["xcoord"]);
        retrieveHawker.ycoord = Convert.ToDouble(mySqlDataReader["ycoord"]);
        retrieveHawker.popularity = Convert.ToDouble(mySqlDataReader["popularity"]);


        retrievehawker.Add(retrieveHawker);
    }
    mySqlDataReader.Close();
    conn.Close();
    return retrievehawker;
}

我如何将它们组合在一起,以便根据在WindowsPhone7中选择的位置,单击按钮,它将触发setpopularity。现在,set popularity的代码将整个+1列添加到popularity中。请提供帮助。

您需要将照片表的主键(或另一个唯一值)传递给您的
设置流行性
方法。
通过这种方式,您可以更改sql命令以仅更新所需的记录

[WebMethod]
public int SetPopularity(string hawkername)
{
    string qry = @"update uploadphoto set popularity=popularity+1 
                   WHERE hawkername=@hawk";
    using(SqlConnection conn = new SqlConnection(connString))
    using(SqlCommand cmd = new SqlCommand(qry, conn))
    {
        conn.Open();
        cmd.Parameters.AddWithValue("@hawk", hawkername);
        int status = cmd.ExecuteNonQuery();
        return status;
     }
}
传递给该方法的字符串是您的主键(如果索引,最好是唯一值),可以在WHERE子句中使用。

还要注意围绕一次性对象的using语句和参数化查询方法,以避免Sql注入和解析问题。

答案在于设置popularity=popularity+1,其中hawkername?小贩回收小贩=新小贩();retrieveHawker.hawkername=Convert.ToString(mySqlDataReader[“hawkername]”)?如果hawkername是您的主键,那么是的,您需要将您的照片链接到此主键值,并使用它来更新该记录我的主键是id,但我也可以将hawkername用作主键,我将首先尝试您所说的。希望其他人也能帮助我。好吧,我更喜欢使用主键,因为这在将来是不太可能改变的,但是如果hawkername有一个唯一的相关索引,那就好了。(请记住,PK有自动索引的快速检索)伟大的将尝试它!谢谢
[WebMethod]
public int SetPopularity(string hawkername)
{
    string qry = @"update uploadphoto set popularity=popularity+1 
                   WHERE hawkername=@hawk";
    using(SqlConnection conn = new SqlConnection(connString))
    using(SqlCommand cmd = new SqlCommand(qry, conn))
    {
        conn.Open();
        cmd.Parameters.AddWithValue("@hawk", hawkername);
        int status = cmd.ExecuteNonQuery();
        return status;
     }
}