|
|
You can read XML directly into datasets like
Dataset.ReadXml(Path)
|
|
|
|
|
Hi,
I've been wondering about this for a long time, so I decided to post this question here to get some opinions.
Suppose I have a Data Access Layer (DAL) with a CustomerData object. This CustomerData object has a GetCustomers() method which returns a DataSet (or a CustomerDataSet typed data set.)
Assuming this method is entirely stateless (no member data accessed), which it really should be in a DAL, is it considered best practice to make this a static method or an instance method. I like the idea of a static method, so I can code:
DataSet myCustomers = CustomerData.GetCustomers();
instead of
CustomerData myCustomerData = new CustomerData();
DataSet myCustomers = CustomerData.GetCustomers();
Since there is never any instance data, I don't really see the use in using an instance of this class. However, I am sure their are other things to consider here, so I am looking forward to your feedback on this.
Roel
|
|
|
|
|
I don't think this is a good approach. Why not making your entire application static then?
If you instanciate objects, you can clean them up neatly if not required. Your database connection object needs to be static which I experienced lots of problems with (for example using threads). I think there are multiple reasons not to make such functions static, but make you instanciate the class they're in
Removing HTML code from a string or such functions are more qualified to be static
|
|
|
|
|
Database connection does not necessarily have to be static, it all depends how you write the code. I am using Enterprise Library now...
Database db = DatabaseFactory.CreateDatabase();
using (DbCommand dbCommand = db.GetStoredProcCommand("GetAccount"))
{
etc...
|
|
|
|
|
The problem is simple, thing is i m ignorant about dataset
I have some record in dataset myDataSet
2) colums like this
id num
1 1034
2 2004
3 2001
how i m accessing the data by
foreach(DataRow myRow in myDataSet.Tables[0].Rows)
{
id=(string)myRow[0];
num=(string)myRow[1];
}
so her wat happens i check for some condition before reading a record if it fails i skip reading
Now later on again i want to start reading from where i did stop how can i do it ?
I want something like index
The dataset is global so i can access any time only thing
i keep track of like i read 2 record but later how can i access the 3 rd record
Sarguna
|
|
|
|
|
you can also use for loop like this
for(; StaticI < 10; StaticI++)
{
id = myDataSet.Tables[0].Rows[StaticI][0];
num = myDataSet.Tables[0].Rows[StaticI][1];
}
Regards
Shajeel
|
|
|
|
|
Thank you for the reply
Both of them
Sarguna
|
|
|
|
|
Erhm, I dont't really understand what you're saying, but i'll give is a shot...
<br />
int iMyRememberIndex = -1;<br />
<br />
for (int iRowIndex = 0; iRowIndex < ds.Tables[0].Rows.Count; iRowIndex++)<br />
if (ds.Tables[0].Rows[iRowIndex]["CellName"].ToString() == "Your Value")<br />
{<br />
iMyRememberIndex = iRowIndex;<br />
break;<br />
}<br />
If this isn't satisfiying, you meight have another attemt posting your question in a readable sentence
|
|
|
|
|
Hello all!!
I am making a console application. I'm using Console.Readkey to get info about the keys pressed. now I want to do something when the key is released, but am not able to fine any events for it.
I found 'KeyUp' event in 'KeyPressEventArgs' in forms, so something eqivalent to that .... ?
Thanks.
Sid
|
|
|
|
|
Hi, I want to run a process to view a PDF file. However I'm unsure of how to retrieve the default application to view a certain file type. Can someone point me in the right direction?
|
|
|
|
|
If I understand correctly you just need to open the file, windows will open it with the default application associated with that file type.
You can use System.Diagnostics.Process.Start(Path);
He who laughs last is a bit on the slow side
|
|
|
|
|
You can use the Shell32 dll to get the executables for certain extensions...
[DllImport("shell32.dll", EntryPoint="FindExecutable")] <br />
private static extern long FindExecutableA(string file, <br />
string directory, StringBuilder res);
There is a nice tutorial somewhere in Codeproject if I remember right...
|
|
|
|
|
Hi,
I'm getting a datarelation problem.I'm having Parent- Child table relation between the following tables.
Product - Inventory - through ProductCode
Inventory - PackageDetail - through InvRefId
I can be able to save the data.But When I'm displaying in the datalist,I'm getting the following error as follows:
System.ArgumentException - The constraints cannot be enabled as not all values have corresponding parent values.
Here is the code:
StringBuilder stbSQLStatement0 = new StringBuilder();
stbSQLStatement0.Append("SELECT B.[ProductCode] ");
stbSQLStatement0.Append(" ,B.[ProductDesc] ");
stbSQLStatement0.Append(" ,SUM(A.QtyIn) As [In] ");
stbSQLStatement0.Append(" ,SUM(A.QtyOut) As [Out] ");
stbSQLStatement0.Append(" ,SUM(A.QtyIn) - SUM(A.QtyOut) As [BalBillQty] ");
stbSQLStatement0.Append(" ,(SUM(A.QtyIn) - SUM(A.QtyOut)) * Avg(B.ConvFactor) As [BalReportQty] ");
stbSQLStatement0.Append("FROM [MARTblInventory] As A WITH (NOLOCK) ");
stbSQLStatement0.Append(" INNER JOIN [MARTblProduct] As B WITH (NOLOCK) ");
stbSQLStatement0.Append(" ON A.ProductCode = B.ProductCode ");
stbSQLStatement0.Append(" and A.MarketSegID = B.MarketSegmtID ");
stbSQLStatement0.Append(" and A.SourceID = B.SourceID ");
if (! vstrProductCode.Equals(""))
{
stbSQLStatement0.Append("WHERE B.[ProductCode] LIKE '" + vstrProductCode + "%' ");
}
stbSQLStatement0.Append("GROUP BY B.[ProductCode] ");
stbSQLStatement0.Append(" ,B.[ProductDesc] ");
DataSet dtsResult0 = new DataSet();
dtsResult0 = QueryData(stbSQLStatement0.ToString());
StringBuilder stbSQLStatement1 = new StringBuilder();
stbSQLStatement1.Append("SELECT A.InvRefID ");
stbSQLStatement1.Append(" ,A.EntryDate ");
stbSQLStatement1.Append(" ,B.[ProductCode] ");
stbSQLStatement1.Append(" ,B.[ProductDesc] ");
stbSQLStatement1.Append(" ,A.[ReferenceNo] ");
stbSQLStatement1.Append(" ,A.QtyIn As [In] ");
stbSQLStatement1.Append(" ,A.QtyOut As [Out] ");
stbSQLStatement1.Append(" FROM [MARTblInventory] As A WITH (NOLOCK) ");
stbSQLStatement1.Append(" INNER JOIN [MARTblProduct] As B WITH (NOLOCK) ");
stbSQLStatement1.Append(" ON A.ProductCode = B.ProductCode ");
stbSQLStatement0.Append(" and A.MarketSegID = B.MarketSegmtID ");
stbSQLStatement0.Append(" and A.SourceID = B.SourceID ");
if (! vstrProductCode.Equals(""))
{
stbSQLStatement1.Append("WHERE B.[ProductCode] LIKE '" + vstrProductCode + "%' ");
}
DataSet dtsResult1 = new DataSet();
dtsResult1 = QueryData(stbSQLStatement1.ToString());
StringBuilder stbSQLStatement2 = new StringBuilder();
stbSQLStatement2.Append("SELECT A.InvRefID ");
stbSQLStatement2.Append(" ,B.PackageNo ");
stbSQLStatement2.Append(" ,B.Length ");
stbSQLStatement2.Append(" ,B.Area ");
stbSQLStatement2.Append(" ,B.ReferenceNo ");
stbSQLStatement2.Append("FROM [MARTblInventory] As A WITH (NOLOCK) ");
stbSQLStatement2.Append(" INNER JOIN [MARTblInventoryPkgDetail] As B WITH (NOLOCK) ");
stbSQLStatement2.Append(" ON A.InvRefID = B.InvRefID ");
if (! vstrProductCode.Equals(""))
{
stbSQLStatement2.Append("WHERE A.[ProductCode] LIKE '" + vstrProductCode + "%' ");
}
DataSet dtsResult2 = new DataSet();
dtsResult2 = QueryData(stbSQLStatement2.ToString());
DataSet dtsCombine = new DataSet();
dtsCombine.Tables.Add(dtsResult0.Tables[0].Copy());
dtsCombine.Tables[0].TableName = "Product";
if (dtsResult1.Tables[0].Rows.Count > 0)
{
dtsCombine.Tables.Add(dtsResult1.Tables[0].Copy());
dtsCombine.Tables[1].TableName = "ProductDetail";
dtsCombine.Relations.Add("ProductDetail",
dtsCombine.Tables["Product"].Columns["ProductCode"],
dtsCombine.Tables["ProductDetail"].Columns["ProductCode"]);
}
if (dtsResult2.Tables[0].Rows.Count > 0)
{
dtsCombine.Tables.Add(dtsResult2.Tables[0].Copy());
dtsCombine.Tables[2].TableName = "PackageDetail";
dtsCombine.Relations.Add("PackageDetail",
dtsCombine.Tables["ProductDetail"].Columns["InvRefID"],
dtsCombine.Tables["PackageDetail"].Columns["InvRefID"]);
}
ugdDataList.Text = mstrGridName;
ugdDataList.DataSource = dtsCombine;
ugdDataList.DataBind();
// if (txtProductCode.Text != "")
// SeekTheSelectedRowInGrid(txtProductCode.Text);
Can anyone let me know how I can proceed?
Thank you,
Sincerely,
Deepa!
|
|
|
|
|
Hello everyone!
I have a game in which when the player presses the left arrow key the next available weapon is selected... But, the weapons available are of the team as a whole, and each player has its own class object... Is there any way I can get a reference to the class containing the object?
<pseudocode>
<code>class Team
{
Weapon[] AvailableWeapons;
Player[] Members;
}
class Player[]
{
int CurrentWeaponIndex;
Weapon CurrentWeapon;
Weapon GetNextWeapon()
{
++CurrentWeaponIndex;
CurrentWeapon = back.AvailableWeapons[CurrentWeaponIndex];
}
}</code>
</pseudocode>
If not, what's the best alternative to use? Thanks!
Windows Calculator told me I will die at 28.
|
|
|
|
|
In order for the player class to see the .AvailableWeapons of a Team class instance, you need to pass a team class instance into the player, via a function call or constructor. Something like this:
Team team1 = new Team();
Player playerA = new Player(team1);
The player class would look like htis:
class Player
{
int CurrentWeaponIndex;
Weapon CurrentWeapon;
Team team;
public Player(Team theTeam)
{
this.team = theTeam;
}
Weapon GetNextWeapon()
{
++CurrentWeaponIndex;
CurrentWeapon = team.AvailableWeapons[CurrentWeaponIndex];
}
}
|
|
|
|
|
Oh, so... yeah, I get it, thanks!
Windows Calculator told me I will die at 28.
|
|
|
|
|
|
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "explorer.exe";
p.StartArgument = "c:"
p.Start();
but p will exit after run these code. so I cann't get its handle by p.MainWindowHandle.
Do you know how to get its handle?
thank you first!
|
|
|
|
|
I need to split MSB and LSB from a short.
Thanks in advance.
*****************
"We need to apply 21st-century information technology to the health care field. We need to have our medical records put on the I.T." —GW
|
|
|
|
|
Nevermind:
http://msdn2.microsoft.com/en-gb/library/system.bitconverter.getbytes.aspx
*****************
"We need to apply 21st-century information technology to the health care field. We need to have our medical records put on the I.T." —GW
|
|
|
|
|
A alternative is to use bit shifting.
To get the MSB you could shift the bits right by 15.
eg msb = short >> 15;
To get the LSB you can always use a bit mask, by using the bitwise AND operator on the short.
eg. lsb = short & 0x0001;
|
|
|
|
|
Hello!
How can i find all emails in some text, using regular expressions...
Thank you.
|
|
|
|
|
Email addresses ? Sure. There are heaps of regex examples for email addresses. I can't recall all the rules for an email address, you'd do better to google for one, or download Expresso, it has one built in.
Christian Graus - C++ MVP
'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
|
|
|
|
|
Hi every one...
I solved this problem... I just had a long day ..
I have a Two dimensional array (or matrix[i,j]).<br />
and I wanted to fill data grid view with this matrix.. how can i do it correctly??
REMAINS THIS
How to highlight a cell or multi cells in a data grid view???
any hint is very appreciated
Thanks in advance..
-- modified at 14:55 Sunday 26th November, 2006
|
|
|
|