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