|
You can manage transactions through front end also.
Go through this link this may help you a bit.
http://www.c-sharpcorner.com/asp/Code/TransactionsInASPNETDPL.asp
Best Regards,
Apurva Kaushal
|
|
|
|
|
I can manage Transaction Front end also but I dont want as my code for Transaction is in Class file because of this I will have to change code on every form which i dont want.
Please help me in saving datagrid (whose data is display with the help of Viewstate Datatable)into Arraylist.
Thanks and Regards.
|
|
|
|
|
probably i am not been able to understand your problem. but if what i have understood is correct then you can maintain the complete transaction in class file itself and just pass the datatable or any parameter you want from your pages.
Best Regards,
Apurva Kaushal
|
|
|
|
|
Cant we use Arraylist for this????
|
|
|
|
|
how are storing the data in arraylist?
Best Regards,
Apurva Kaushal
|
|
|
|
|
Following is the code what I am using:::
private void ibtnSave_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
Classes.CChecklist cchecklist = new Classes.CChecklist();
int result = -1;
DataTable dt = new DataTable("ChecklistMod");
dt = (DataTable)ViewState["dtCheckList"];
ArrayList arrDataGriditems = new ArrayList();
for(int cntRow = 0; cntRow < dt.Rows.Count ; cntRow++)
{
for(int cntCol = 0; cntCol < dt.Columns.Count ; cntCol++)
{
string str = dt.Rows[cntRow][cntCol].ToString();
arrDataGriditems.Add(dt.Rows[cntRow][cntCol]);
cchecklist.CheckListInsert.Add(dt.Rows[cntRow][cntCol]);
}
}
result = cchecklist.InsertChecklist();
if(result == 1)
{
lblError.ForeColor = System.Drawing.Color.Green;
lblError.Visible = true;
lblError.Text = "Record Inserted";
}
else
{
lblError.ForeColor = System.Drawing.Color.Red;
lblError.Visible = true;
lblError.Text = "Record Not Inserted" + ":" + cchecklist.LastError;
}
}
Bue I not able to get elements in
cchecklist.CheckListInsert.Add(dt.Rows[cntRow][cntCol]);
but I am getting elements in
arrDataGriditems.Add(dt.Rows[cntRow][cntCol]);
Please let me know where I am going wrong.
Thanks and regards.
|
|
|
|
|
What is the purpose of this method cchecklist.CheckListInsert.Add()
varshavmane wrote: Bue I not able to get elements in
cchecklist.CheckListInsert.Add(dt.Rows[cntRow][cntCol]);
but I am getting elements in
arrDataGriditems.Add(dt.Rows[cntRow][cntCol]);
Both the places you are using same thing("dt.Rows[cntRow][cntCol]" and dt.Rows[cntRow][cntCol]) so how could it be different.
Best Regards,
Apurva Kaushal
|
|
|
|
|
cchecklist.CheckListInsert.Add() is nothing but Arraylist Property of Checklist class.
It is assigning the dt.Rows[cntRow][cntCol] value to arrDataGriditem.Add() but not to cchecklist.CheckListInsert.Add()
This is where I am facing problem.
Thanks and Regards.
|
|
|
|
|
If both accepts same type of parameters and if you are providing same parameter values then obviously they should behave same manner if they are intended for the same purpose.
Best Regards,
Apurva Kaushal
|
|
|
|
|
But they are not initialize to the values of datatable as it is initialize to Local arraylist variable.
Can u please tell me what is the problem???
Thanks.
|
|
|
|
|
that depends upon what you are doing in cchecklist.CheckListInsert.Add().
Best Regards,
Apurva Kaushal
|
|
|
|
|
It is just a property code as follows:
public ArrayList CheckListInsert
{
get
{
return checklistInsert;
}
set
{
checklistInsert = value;
}
}
This code is in class file.
Thanks and Regards.
|
|
|
|
|
you cant add the value like that for the property of type arraylist.
for(int cntRow = 0; cntRow < dt.Rows.Count ; cntRow++)<br />
{<br />
for(int cntCol = 0; cntCol < dt.Columns.Count ; cntCol++)<br />
{<br />
string str = dt.Rows[cntRow][cntCol].ToString();<br />
arrDataGriditems.Add(dt.Rows[cntRow][cntCol]);<br />
<br />
<br />
<br />
}<br />
}<br />
cchecklist.CheckListInsert.Add(arrDataGriditems);<br />
I think this will solve the problem.
Best Regards,
Apurva Kaushal
|
|
|
|
|
I have just given the code for the looping and after that. You just replace them only.
Best Regards,
Apurva Kaushal
|
|
|
|
|
No its not working.....
Thanks and Regards.
|
|
|
|
|
are you getting any compile time error?
Best Regards,
Apurva Kaushal
|
|
|
|
|
No I am getting runtime error saying :
"The name 'ArrayList' is not permitted in this context. Only constants, expressions, or variables allowed here. Column names are not permitted."
I dont know what is the problem????
Thanks and regards.
|
|
|
|
|
you try like this:
for(int cntRow = 0; cntRow < dt.Rows.Count ; cntRow++)<br />
{<br />
for(int cntCol = 0; cntCol < dt.Columns.Count ; cntCol++)<br />
{<br />
string str = dt.Rows[cntRow][cntCol].ToString();<br />
arrDataGriditems.Add(dt.Rows[cntRow][cntCol]);<br />
<br />
<br />
<br />
}<br />
}<br />
cchecklist.CheckListInsert=arrDataGriditems;
Best Regards,
Apurva Kaushal
|
|
|
|
|
Hi,
////fill arraylist
sub fill_Array()
Dim gridItem As DataGridItem
Dim idArray As New ArrayList()
For Each gridItem In DataGrid1.Items
Dim lbl As Label = DirectCast(gridItem.FindControl("ID"), Label)
idArray.Add(lbl.Text)
next
end sub
///saving to database
Sub Save()
for i=0 to DataGrid1.Items.Count-1
sql="insert into tablename name="+idarray(i)
//Execute this query
next
end sub
If it's not of you mean......have some more discussion
Regards,
Nagraj
|
|
|
|
|
Tell me why are we using Label here???I understood the code but not the Label one.
I am not getting datagriditem().It contains some arguments.I am using C#.Net
-- modified at 6:33 Tuesday 20th June, 2006
|
|
|
|
|
Hi,
Ok I think you don't need arraylist for your purpose.
See This also works.
///saving to database
Sub Save()
for i=0 to DataGrid1.Items.Count-1
sql="insert into tablename name="+DataGrid1.Items(i)
//Execute this query
next
end sub
|
|
|
|
|
I dont want to write my Query on Form itself.I need to write it in Class File.Also I need see for Transaction management.
Please help how do I save it(DataGrid) into an Arraylist as I have to define Arraylist Property and everything will be take care by it.
I just need to save all the records in Arraylist and finally call a function which is inside the class file and inside this function I write Insert query which will have arraylist as one of the parameter.
I hope u got my problem.
Thanks and regards.
|
|
|
|
|
This is what I want you to specify.
Means You are using procedure to save in database which is located in some class and you want to send datagrid records to this procedure.
I hope I am clear now...
Now instead of using arraylist use one class having property within it.
ex.
public class class1
Private _id As Integer = 0
Private _degreeName As String = ""
Public Property ID() As Integer
Get
Return _id
End Get
Set(ByVal Value As Integer)
_id = Value
End Set
End Property
Public Property DegreeName() As String
Get
Return _degreeName
End Get
Set(ByVal Value As String)
_degreeName = Value
End Set
End Property
end class
Now in your webpage code
dim myclass as new class1
for i=0 datagrid1.items.count-1
// set attribute values
with myclass
.id=DataGrid1.Items(i).Cells(0).Text
.degreeName=DataGrid1.Items(i).Cells(1).Text
end with
saveclass.Save_record(myclass) //call saving routine from another class i.e saveclass
next
///saving procedure
public sub Save_record(byval _myclass as myclass)
sql="insert into tablename values (" + _myclass.id +","+_myclass.degreename +")"
///Execute sql code here
end sub
I added two new things
1)Add new class i.e. class1 for storing value
2)pass this class1's object as parameter to record saving procedure
Please check for syntax I just put idea for you.And I sure this will work
Thanks,
Nagraj
|
|
|
|
|
Can u please tell me the syntax of class in C#.NET.
I came to know what actually u r doing but since I dont know VB or VB.NET therefore some of the code I am not getting.
Thanks and Regards.
|
|
|
|
|
Ya I have tried like this and keeping cchecklist.CheckListInsert=arrDataGriditems; inside 1st for loop also I have tried but same error.
|
|
|
|