PDA

View Full Version : ويرايش اطلاعات جدول



profnami
پنج شنبه 01 مهر 1389, 14:33 عصر
سلام
با بد خطايي در افتادم . هر چي ميخونم متوجه نميشم كجا اشتباه كردم .
اين متن خطا :




COM object that has been separated from its underlying RCW cannot be used.






من اطلاعات رو از ديتا بيس ميخونم و تو گريد نشون ميدم . براي ويرايش هم يه دكمه گذاشتم :


<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btnUpdate" runat="server" Text="ویرایش" CommandName="UpdateMe" CommandArgument='<%# Eval("ID")%>' />
</ItemTemplate>
</asp:TemplateField>


خوب حالا تو رويداد RowCommand نوشتم :





if (e.CommandName == "UpdateMe")
{
BLL.Article article = new BLL.Article();
OleDbDataReader dr = article.GetArticle(Convert.ToInt32(e.CommandArgume nt));
if (dr.HasRows)
{
while (dr.Read())
{
txtTitle.Text = dr["Title"].ToString();
fckEditor.Value = dr["Body"].ToString();
}
}

}




همه چي درسته . اما ارور ميده . ميشه بگيد كجا ايراد داره ؟

profnami
پنج شنبه 01 مهر 1389, 15:04 عصر
وقتي كدهاي داخل RowCommand رو به اين صورت مينويسم كار ميكنه :




if (e.CommandName == "UpdateMe")
{
using (OleDbConnection con = new OleDbConnection(System.Web.Configuration.WebConfig urationManager.ConnectionStrings["IslamCon"].ConnectionString))
{
using (OleDbCommand com = new OleDbCommand())
{
com.Connection = con;
com.CommandText = "SELECT * FROM Articles WHERE ID=?";
com.Parameters.AddWithValue("ID", Convert.ToInt32(e.CommandArgument));
try
{
con.Open();
OleDbDataReader dr = com.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
txtTitle.Text = dr["Title"].ToString();
fckEditor.Value = dr["Body"].ToString();
}
}
if (!dr.IsClosed)
dr.Close();
}
catch
{
throw;
}
finally
{
con.Close();
}
}
}



فكر نميكنم كدهاي درون لايه ها رو اشتباه نوشته باشم . چون اونها هم دقيقا همين كار رو انجام ميدن .