SQL Server的检索和更新(Windows Phone 7的)(sql server retr

2019-10-19 06:09发布

我有一个检索的代码:

[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;
}

和的setpopularity:

    [WebMethod]
public int SetPopularity()
{
    string qry = @"update uploadphoto set popularity=popularity+1";
    SqlConnection conn = new SqlConnection(connString);
    SqlCommand cmd = conn.CreateCommand();
    cmd.CommandText = qry;
    conn.Open();
    int status = cmd.ExecuteNonQuery();
    conn.Close();
    return status;
}

我怎样才能结合在一起他们,使基于选择在Windows Phone 7的地方点击一个按钮的,的,然后它会触发setpopularity。 现在的集人气的代码加入+1的整列人气。 请帮助。

Answer 1:

你需要传递给你的SetPopularity方法您的照片表的主键(或其他唯一值)。
这样,你就可以改变你的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注入和解析问题。



文章来源: sql server retrieve and update (windows phone 7)