【发布时间】:2011-10-12 05:18:53
【问题描述】:
下面的 sn-p 在同一个连接字符串中使用多个查询。首先,我从数据库中选择一些数据,然后在关闭 datareader(dr) 之前,我想做一些验证,所以如果满足我会在 dr 的 while 循环中将这些值插入到数据库中的表中。那里我收到错误,因为已经有一个打开的数据读取器,所以在关闭它之前我不能使用另一个查询。所以我暂时使用了另一个指向同一个数据库的连接字符串,我使用该连接对象(conn1)执行插入 qry。但是 wat 是不使用另一个连接字符串的另一种方法。 任何帮助将不胜感激。谢谢。
public XmlDocument LBS_Offer_Scheduler(string dev_token, float lat, float llong)
{
XmlDocument xml_doc = null;
bool result = false;
int row_affect = 0;
int x = (int)Math.Truncate(lat);
int y = (int)Math.Truncate(llong);
string qry = "select Store_id,Store_Latitude,Store_Longitude from tbl_FB_Store_Details where Store_Latitude like '"
+ x + "%' and Store_Longitude like '" + y + "%'";
conn.Open();
cmd = new SqlCommand(qry, conn);
dr = cmd.ExecuteReader();
while (dr.Read())
{
Store_Id = dr[0].ToString();
str_dlat = dr[1].ToString();
str_dlon = dr[2].ToString();
double dlat = Convert.ToDouble(str_dlat);
double dlon = Convert.ToDouble(str_dlon);
dist_in_sqmts = obj_distance.distance(lat, llong, dlat, dlon);
id = Convert.ToInt32(Store_Id);
if (dist_in_sqmts < 200.00)
{
string insert_qry = "insert into tbl_FB_Offer_PushNote values('" + dev_token + "', "+ id + ",'" + DateTime.Now + "','N')";
conn1.Open();
cmd = new SqlCommand(insert_qry, conn1);
row_affect = cmd.ExecuteNonQuery();
conn1.Close();
}
}
conn.Close();
if (row_affect > 0)
result = true;
xml_doc = x_doc.result(result);
return xml_doc;
}
【问题讨论】:
标签: c# sql-server-2008 ado.net connection-string sqldatareader