|
I'm pretty sure there will be an item or row binding event raised by the grid view (without knowing which one you are using, I couldn't possibly narrow it down). In this binding event, you should be able to get the details of the relevant cell and handle it accordingly. If you were using WPF, I'd recommend using a Value Converter to handle it.
Alternatively, you could use a calculated column in your data table (I wouldn't recommmend it, but you could).
|
|
|
|
|
I suggest you read up on the DataGridView.CellFormatting event.
Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum
Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.
|
|
|
|
|
When you use the next code
Math.Round(5.515* 0.05, 2,MidpointRounding.AwayFromZero)
the result is 5.52
with
Math.Round(6.515* 0.05, 2,MidpointRounding.AwayFromZero)
the result is 6.52
with
Math.Round(7.515* 0.05, 2,MidpointRounding.AwayFromZero)
the result is 7.52
......
but with
Math.Round(4.515* 0.05, 2,MidpointRounding.AwayFromZero)
the result is 4.51
|
|
|
|
|
galache wrote: Math.Round(4.515* 0.05, 2,MidpointRounding.AwayFromZero) the result is 4.51
Very interesting but how do you account for this when the result of 4.515* 0.05 is 0.22575 ?
I think there may be something wrong in your code.
I must get a clever new signature for 2011.
|
|
|
|
|
Sorry, the code is:
Math.Round(4.515, 2, MidpointRounding.AwayFromZero)
the result is 4,51
other example whit decimal type
Math.Round(4.515m, 2, MidpointRounding.AwayFromZero)
the result is 4,52
I think the problem is the double type use in the first example
Thanks
|
|
|
|
|
galache wrote: I think the problem is the double type use in the first example
Yes, one of the inherent problems of representing floating point (and double) values in binary is that they tend to lose accuracy after the decimal point, as they can only be approximations of decimal numbers.
I must get a clever new signature for 2011.
|
|
|
|
|
Hello Everybody,
I have two tables Emp and Dept in DataSet. In which have followind fields.
Emp Dept
---- --------
Emp_No Emp_No
Emp_Name Dept_No
Emp_Sal Dep_Name
Now i want the result in datagridview from both dataset. Result will be look like this.....
Result_In_dataGridview
-----------------------
Emp_no Emp_Name Emp_Sal Dept_no Dept_Name
So please describe me how can i do that by using Code.
Thanks
If you can think then I Can.
|
|
|
|
|
You need to construct a SQL JOIN between the two tables.
Here is a simple example which combines the two into a new table:
static void Main(string[] args)
{
Console.WriteLine("Started");
SqlConnection con = new SqlConnection(strCon);
con.Open();
SqlDataAdapter daMyTable = new SqlDataAdapter("SELECT * FROM myTable", con);
SqlDataAdapter daMyOtherTable = new SqlDataAdapter("SELECT * FROM myOtherTable", con);
SqlDataAdapter daJoined = new SqlDataAdapter("SELECT * FROM myTable INNER JOIN myOtherTable ON myTable.iD=myOtherTable.iD", con);
DataSet ds = new DataSet();
daMyTable.Fill(ds, "My Table");
daMyOtherTable.Fill(ds, "My Other Table");
daJoined.Fill(ds, "My Joined Table");
ShowDataSet(ds);
con.Close();
Console.WriteLine("Stopped");
Console.ReadLine();
}
private static void ShowDataSet(DataSet ds)
{
foreach (DataTable dt in ds.Tables)
{
Console.WriteLine(dt.TableName);
ShowDataTable(" ", dt);
}
}
private static void ShowDataTable(string p, DataTable dt)
{
int cols = dt.Columns.Count;
foreach (DataRow dr in dt.Rows)
{
Console.Write(p);
string sep = "";
for (int i = 0; i < cols; i++)
{
Console.Write(sep + dr[i].ToString());
sep = ", ";
}
Console.WriteLine();
}
}
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
Manfred R. Bihy: "Looks as if OP is learning resistant."
|
|
|
|
|
I Do't have any Connection. I have data in dataset.
If you can think then I Can.
|
|
|
|
|
SqlDataAdapter daMyTable = new SqlDataAdapter("SELECT * FROM myTable", con);
SqlDataAdapter daMyOtherTable = new SqlDataAdapter("SELECT * FROM myOtherTable", con);
SqlDataAdapter daJoined = new SqlDataAdapter("SELECT * FROM myTable INNER JOIN myOtherTable ON myTable.iD=myOtherTable.iD", con);
I am curious why did you get the data seperately instead of using a one query with a "join", getting all the data all once and bing it to gridview?
|
|
|
|
|
Purely to show what I was doing, and that I had two tables in the database.
Seemed worth doing for a beginner in this stuff...
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
Manfred R. Bihy: "Looks as if OP is learning resistant."
|
|
|
|
|
just use innerjoin ..
select Emp.*, Dept.* from Emp inner join Dept on Emp.Emp_No = Dept.Emp_No
|
|
|
|
|
How can i use join in data set.
If you can think then I Can.
|
|
|
|
|
In case of Database connection we have two options to close the connection is Close and Dispose.
Both are working same and Fine.
So Pls describe it which one is sutaible for database connection close. and what is the diffrence between Close and Dispose.
Thanks
If you can think then I Can.
|
|
|
|
|
You should use Close. Dispose method automaticly is called by a garbage collector. Usaly when using WinAPI you use CloseHandler api and other to clear a memory when not needed. This also prevents memory leaks. Dispose method is inherited from IDispose interface.
|
|
|
|
|
Dispose. Or (for tidiness) Close and Dispose - though the close is done automatically as part of the dispose.
In preference, enclose your conection and commands in using blocks which will automatically dispose the objects and remove them from scope.
using (SqlConnection con = new SqlConnection(...))
{
con.Open();
using (SqlCommand com = new SqlCommand("SELECT ...", con))
{
...
}
} Closing does not free up all resources associated with the connection until it is disposed, which may take some considerable time if you are waiting for the Garbage Collector to be triggered.
You would normally Close the connection if you will reopen it again soon.
Real men don't use instructions. They are only the manufacturers opinion on how to put the thing together.
Manfred R. Bihy: "Looks as if OP is learning resistant."
|
|
|
|
|
Theoretically, you're right. But in my company we had some troubles, when we used construct you're suggesting. The problem was, that connection wasn't always closed, when enclosed in using. So we are using construction as below:
using (SqlCommand command = new SqlCommand())
{
using (command.Connection = new SqlConnection(connectionString))
{
try
{
command.Connection.Open();
}
catch(Exception)
{
}
finally
{
command.Connection.Close();
}
}
}
And concerning the question... link[^]
It says, that "Close and Dispose are functionally equivalent". Therefore I think you should use Close rather, than Dispose. It makes code easier to read, because you can see the pair of methods: Open - Close, and you know, that they're connected to each other.
Don't forget to rate answer, that helped you. It will allow other people find their answers faster.
|
|
|
|
|
Close allows you to open the connection again.
|
|
|
|
|
thanks sir...
If you can think then I Can.
|
|
|
|
|
Dispose calls Close.
Which would seem to mean Dispose should be fine.
However, Close can throw exceptions.
So what happens in the following code if Close throws an exception? Myself I expect the insert to have succeeded (if it didn't throw an exception and transactions are not used.)
using(connection...)
{
}
Additionally there is no assurance that Dispose will not throw an exception for some other origination besides Close as well.
Given that database operations are often critical I consider that some variation of the following is often a better idiom.
connection = ...
bool isOk=false;
try
{
isOk=true;
}
finally
{
try
{
connection.Close();
}
catch(Exception ee)
{
if (isOk)
{
}
else
{
}
}
try
{
((IDisposable)connection).Dispose();
}
catch
{
}
}
You could also decide to handle Out Of Memory exceptions and thread abort as well.
|
|
|
|
|
|
PIEBALDconsult wrote: Paranoid much?
Somewhat above a smidge.
|
|
|
|
|
how to develop mobile application in c#?
modified on Thursday, March 10, 2011 12:57 AM
|
|
|
|
|
Write Ur Question properly Accourding to Form Type.
If you can think then I Can.
|
|
|
|
|
I'm guessing you weren't when someone posted this question.
"You get that on the big jobs."
|
|
|
|