By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,952 Members | 1,785 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,952 IT Pros & Developers. It's quick & easy.

C# delete code

P: n/a
Hi,

I am working with C# and ASP.NET with code behind and a SQL Server.
I'm making an e-shop. When clients see what they have in their basket,
I added a function DELETE to delete a line. It took me hours to get it
working in both the dataset and the database itself. It works now, but
the code looks so ugly to me. Can someone tell me what I use too much,
and what could be changed? I am using a temporary table to store the
basket with an ID, a session id.

Thanks!

private void DataGrid1_DeleteCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
String strConnection =
ConfigurationSettings.AppSettings["xyz"];
SqlConnection objConnection = new
SqlConnection(strConnection);
objConnection.Open();
String strSQL;
strSQL="SELECT tblProdPrice.Photo, tblProducts.Product,
tblTempOrder.Number, tblProdPrice.Price, tblTempOrder.ID FROM
tblTempOrder INNER JOIN tblProducts ON tblTempOrder.ProductID =
tblProducts.WebID INNER JOIN tblProdPrice ON tblProducts.WebID =
tblProdPrice.ID WHERE tblTempOrder.SesID='" + Session.SessionID + "'
AND tblProducts.Lang='" + Session["CkTaal"].ToString() + "'";
SqlCommand objCommand = new SqlCommand(strSQL, objConnection);
SqlDataAdapter adapter = new SqlDataAdapter(objCommand);
DataSet mandje = new DataSet();
adapter.Fill(mandje,"Mandje");

int row = Convert.ToInt32(e.Item.ItemIndex);
string test =
mandje.Tables["Mandje"].Rows[row]["ID"].ToString();

mandje.Tables["Mandje"].Rows[row].Delete();

strSQL="DELETE FROM tblTempOrder WHERE tblTempOrder.ID = '" +
test + "'";
SqlCommand objCommand2 = new SqlCommand(strSQL,
objConnection);
SqlDataAdapter adapter2 = new SqlDataAdapter(objCommand2);
DataSet mandje2 = new DataSet();
adapter2.Fill(mandje2,"Mandje");
objConnection.Close();

DataGrid1.DataSource=mandje;
DataGrid1.DataBind();

if
(GetTotaalFromDatabase().Tables["Totaal"].Rows[0][0].ToString()=="")
{
lblTotaal.Text="0";
}
else
{
lblTotaal.Text =
Double.Parse(GetTotaalFromDatabase().Tables["Totaal"].Rows[0][0].ToString()).ToString("F2");
lblTotaal.DataBind();
}
}
Nov 17 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a

maybe is more easy to develop a store procedure that receive three parameters, SessionID, Session["CkTall"] and rowIndex, and inside it make all operation ( query, select the test value and after delete rows ), after it you can return the "query"................... in this form, in the code I'll put only one statement that query in a SqlDataAdapter that does the connection to db and return the DataSet.......
below are the changes that I'll do it to the code:

private void DataGrid1_DeleteCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
SqlConnection objConnection = new SqlConnection(ConfigurationSettings.AppSettings["xyz"]);

objConnection.Open();
String strSQL;
strSQL="SELECT tblProdPrice.Photo, tblProducts.Product,
tblTempOrder.Number, tblProdPrice.Price, tblTempOrder.ID FROM
tblTempOrder INNER JOIN tblProducts ON tblTempOrder.ProductID =
tblProducts.WebID INNER JOIN tblProdPrice ON tblProducts.WebID =
tblProdPrice.ID WHERE tblTempOrder.SesID='" + Session.SessionID + "'
AND tblProducts.Lang='" + Session["CkTaal"].ToString() + "'";
SqlCommand objCommand = new SqlCommand(strSQL, objConnection);
SqlDataAdapter adapter = new SqlDataAdapter(objCommand);
DataSet mandje = new DataSet();
adapter.Fill(mandje,"Mandje");

int row = Convert.ToInt32(e.Item.ItemIndex);
string test =
mandje.Tables["Mandje"].Rows[row]["ID"].ToString();

mandje.Tables["Mandje"].Rows[row].Delete();

strSQL="DELETE FROM tblTempOrder WHERE tblTempOrder.ID = '" +
test + "'";
SqlCommand objCommand2 = new SqlCommand(strSQL,
objConnection);

objCommand2.ExecuteNonQuery();

objConnection.Close();

DataGrid1.DataSource=mandje;
DataGrid1.DataBind();

if
(GetTotaalFromDatabase().Tables["Totaal"].Rows[0][0].ToString()=="")
{
lblTotaal.Text="0";
}
else
{
lblTotaal.Text =
Double.Parse(GetTotaalFromDatabase().Tables["Totaal"].Rows[0][0].ToString()).ToString("F2");
lblTotaal.DataBind();
}
}

"NoSpam" <no@spam.com> wrote in message news:t2********************************@4ax.com...
Hi,

I am working with C# and ASP.NET with code behind and a SQL Server.
I'm making an e-shop. When clients see what they have in their basket,
I added a function DELETE to delete a line. It took me hours to get it
working in both the dataset and the database itself. It works now, but
the code looks so ugly to me. Can someone tell me what I use too much,
and what could be changed? I am using a temporary table to store the
basket with an ID, a session id.

Thanks!

private void DataGrid1_DeleteCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
String strConnection =
ConfigurationSettings.AppSettings["xyz"];
SqlConnection objConnection = new
SqlConnection(strConnection);
String strSQL;
strSQL="SELECT tblProdPrice.Photo, tblProducts.Product,
tblTempOrder.Number, tblProdPrice.Price, tblTempOrder.ID FROM
tblTempOrder INNER JOIN tblProducts ON tblTempOrder.ProductID =
tblProducts.WebID INNER JOIN tblProdPrice ON tblProducts.WebID =
tblProdPrice.ID WHERE tblTempOrder.SesID='" + Session.SessionID + "'
AND tblProducts.Lang='" + Session["CkTaal"].ToString() + "'";
SqlCommand objCommand = new SqlCommand(strSQL, objConnection);
SqlDataAdapter adapter = new SqlDataAdapter(objCommand);
DataSet mandje = new DataSet();
adapter.Fill(mandje,"Mandje");

int row = Convert.ToInt32(e.Item.ItemIndex);
string test =
mandje.Tables["Mandje"].Rows[row]["ID"].ToString();

mandje.Tables["Mandje"].Rows[row].Delete();

strSQL="DELETE FROM tblTempOrder WHERE tblTempOrder.ID = '" +
test + "'";
SqlCommand objCommand2 = new SqlCommand(strSQL,
objConnection);
SqlDataAdapter adapter2 = new SqlDataAdapter(objCommand2);
DataSet mandje2 = new DataSet();
adapter2.Fill(mandje2,"Mandje");
objConnection.Close();

DataGrid1.DataSource=mandje;
DataGrid1.DataBind();

if
(GetTotaalFromDatabase().Tables["Totaal"].Rows[0][0].ToString()=="")
{
lblTotaal.Text="0";
}
else
{
lblTotaal.Text =
Double.Parse(GetTotaalFromDatabase().Tables["Totaal"].Rows[0][0].ToString()).ToString("F2");
lblTotaal.DataBind();
}
}

Nov 17 '05 #2

P: n/a
Hello,

There is one good article on data acess in .NET.(".NET Data Access Architecture Guide")

You could get it at http://msdn.microsoft.com/library/en...asp?frame=true

This article provides information to help you choose the most appropriate data access approach. It does this by describing
a wide range of common data access scenarios, providing performance tips, and prescribing best practices. This guide
also provides answers to frequently asked questions, such as: Where is the best place to store database connection
strings? How should I implement connection pooling? How should I work with transactions? How should I implement paging
to allow users to scroll through large numbers of records?

Hope that helps.

Best regards,
Yanhong Huang
Microsoft Online Partner Support

Get Secure! - www.microsoft.com/security
This posting is provided "AS IS" with no warranties, and confers no rights.

--------------------
!From: NoSpam <no@spam.com>
!Newsgroups: microsoft.public.dotnet.framework.aspnet
!Subject: C# delete code
!Message-ID: <t2********************************@4ax.com>
!X-Newsreader: Forte Agent 1.93/32.576 English (American)
!MIME-Version: 1.0
!Content-Type: text/plain; charset=us-ascii
!Content-Transfer-Encoding: 7bit
!Lines: 62
!X-Complaints-To: ab***@easynews.com
!Organization: EasyNews, UseNet made Easy!
!X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint
properly.
!Date: Sun, 03 Aug 2003 09:43:40 GMT
!Path: cpmsftngxa06.phx.gbl!TK2MSFTNGP08.phx.gbl!newsfeed 00.sul.t-online.de!t-online.de!newsfeed.icl.net!
newsfeed.fjserv.net!newshosting.com!news-xfer1.atl.newshosting.com!140.99.99.194.MISMATCH!n ewsfeed1.easynews.com!
easynews.com!easynews!easynews-local!news.easynews.com.POSTED!not-for-mail
!Xref: cpmsftngxa06.phx.gbl microsoft.public.dotnet.framework.aspnet:164407
!X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet
!
!Hi,
!
!I am working with C# and ASP.NET with code behind and a SQL Server.
!I'm making an e-shop. When clients see what they have in their basket,
!I added a function DELETE to delete a line. It took me hours to get it
!working in both the dataset and the database itself. It works now, but
!the code looks so ugly to me. Can someone tell me what I use too much,
!and what could be changed? I am using a temporary table to store the
!basket with an ID, a session id.
!
!Thanks!
!
!private void DataGrid1_DeleteCommand(object source,
!System.Web.UI.WebControls.DataGridCommandEventArg s e)
!{
! String strConnection =
!ConfigurationSettings.AppSettings["xyz"];
! SqlConnection objConnection = new
!SqlConnection(strConnection);
! objConnection.Open();
! String strSQL;
! strSQL="SELECT tblProdPrice.Photo, tblProducts.Product,
!tblTempOrder.Number, tblProdPrice.Price, tblTempOrder.ID FROM
!tblTempOrder INNER JOIN tblProducts ON tblTempOrder.ProductID =
!tblProducts.WebID INNER JOIN tblProdPrice ON tblProducts.WebID =
!tblProdPrice.ID WHERE tblTempOrder.SesID='" + Session.SessionID + "'
!AND tblProducts.Lang='" + Session["CkTaal"].ToString() + "'";
! SqlCommand objCommand = new SqlCommand(strSQL, objConnection);
! SqlDataAdapter adapter = new SqlDataAdapter(objCommand);
! DataSet mandje = new DataSet();
! adapter.Fill(mandje,"Mandje");
!
! int row = Convert.ToInt32(e.Item.ItemIndex);
! string test =
!mandje.Tables["Mandje"].Rows[row]["ID"].ToString();
!
! mandje.Tables["Mandje"].Rows[row].Delete();
!
! strSQL="DELETE FROM tblTempOrder WHERE tblTempOrder.ID = '" +
!test + "'";
! SqlCommand objCommand2 = new SqlCommand(strSQL,
!objConnection);
! SqlDataAdapter adapter2 = new SqlDataAdapter(objCommand2);
! DataSet mandje2 = new DataSet();
! adapter2.Fill(mandje2,"Mandje");
! objConnection.Close();
!
! DataGrid1.DataSource=mandje;
! DataGrid1.DataBind();
!
! if
!(GetTotaalFromDatabase().Tables["Totaal"].Rows[0][0].ToString()=="")
! {
! lblTotaal.Text="0";
! }
! else
! {
! lblTotaal.Text =
!Double.Parse(GetTotaalFromDatabase().Tables["Totaal"].Rows[0][0].ToString()).ToString("F2");
! lblTotaal.DataBind();
! }
!}
!
Nov 17 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.