|
Is there any way i can attach a database (oledb or whatever) to a DataGridView without filling an offline dataset first? So basically execute an SQL query against a database and display the results in a datagridview (without using .Fill(...) because it takes forever)
Thanks a lot,
Wouter
|
|
|
|
|
|
Thanks for your reply, I tried it but it seems the .DataBind() method has disappeared from the DataGrid (also from the DataGridView which I am using).
Following your hint using the DataReader i searched the web for further clues and i came around a page that fills a DataTable (by DataTable.Load(DataReader)) but that's not what I want (coz it takes ages to load)
Can you tell me how to do it without the unavailable DataBind() method?
Thanks,
Wouter
|
|
|
|
|
Wouter Van Ranst wrote: it seems the .DataBind() method has disappeared from the DataGrid
Is this ASP.NET?
|
|
|
|
|
just normal C#
|
|
|
|
|
So Winforms? There never has been a DataBind in Winforms that is in ASP.NET. DataBind provides the timing mechanism required in a Web application. In a process based application you are always bound after initialization.
|
|
|
|
|
thanks for clearing this up, so how do i attach the DataReader to the DataGridView, the code in the article doesn't work without the DataBind() method (nothing is displayed in the DataGridView)
|
|
|
|
|
I have not used a DataReader but the DataGridView.DataSource property is how you bind it to data.
|
|
|
|
|
Can some one help me out of understanding the delegate.
we are calling some method with delegate object.
program t1=new program()
delegateabc d1 = new delegateabc(t1.Testabc);
Here I am calling the method Testabc from class program.
I don't understand what is the benefit of calling through delagate
I can directly use t1.testabc not going through delagte.
can someone help me ou with the difference.
t
|
|
|
|
|
The code wouldn't call the function. For this you would have to add:
d1(probablySomeArguments);
In this simple scenario it doesn't make any sense. Let me try to construct a rather simple case where it could be useful:
Lets assume you have an array of numbers which you want to apply a function to each one:
public void Calculate(int[] numbers) {
for (int i = 0; i < numbers; i++)
numbers[i] = numbers[i] * 2;
}
This small snippet would double all numbers. But what if several callers want to do different things with those numbers? For this you *could* use a delegate:
public delegate int NumberCalculaterCallback(int number);
public void Calculate(int[] numbers, NumberCalculaterCallback callback) {
for (int i = 0; i < numbers; i++)
numbers[i] = callback(numbers[i]);
}
Now the caller could input any function it likes:
public class Caller {
private int Double(int number) {
return number * 2;
}
private int AddOne(int number) {
return number + 1;
}
private int Square(int number) {
return Math.Pow(number, 2);
}
public void Test() {
int[] numbers = new int[] { 1, 2, 3, 4, 5 };
Calculate(numbers, new NumberCalculaterCallback(Double));
Calculate(numbers, new NumberCalculaterCallback(AddOne));
Calculate(numbers, new NumberCalculaterCallback(Square));
}
}
Calculate now uses functions which it has absolute no clue about. This function could be anywhere, even in a different assembly. It just needs to know about the delegate definition and can then make any processing with the numbers the caller can think of.
|
|
|
|
|
Robert,
Thank you very much Now I understood filly.Thanks again for helping
in this concept
|
|
|
|
|
Hello All,
I am trying to read a row from a gridview and display the items in the row in to textboxes. I have my gridview set up and is working fine but I could't figure out how to take the selected row's items. Any help would be appriciated.
Thanks
|
|
|
|
|
<br />
GridViewRow gvr = gvYourGrid.Rows[X]<br />
tbYourTextBox = ((Label)gvr.FindControl("lblGridData")).Text;<br />
...continue for each cell or label to populate...<br />
<br />
tbYourTextBox = gvr.Cells[Y].Text;<br />
...continue for each cell or textbox you need to populate...<br />
X is the row you want the items from and Y is the cell;
|
|
|
|
|
Thank you so much for your reply. I understand what you mean and it is working perfect when I put in the row and column numbers but my problem is I don't know which row the user would select. The data is read form a database and I put a radio button beside all rows. I want the user select the row from the radio button and click on a button after that the information on that row would be shown in appropiate textboxes.
I am really stuck on that and I would really appriciate your help.
Thanks
|
|
|
|
|
Try this, you go through each row in the GridView looking for the one with the selected radio button and break out when you find it.
<br />
foreach (GridViewRow gvr in gvYourGridView.Rows)<br />
{<br />
if (((RadioButton)gvr.FindControl("rbYourRadioButton")).Checked)<br />
{<br />
<br />
break; <br />
}<br />
}<br />
-- modified at 17:55 Tuesday 27th June, 2006
EDIT: .Checked not .Selected
|
|
|
|
|
Great! Thank you so much, I really appriciate it.
Cheers
|
|
|
|
|
Let say I have 2 methods:
void BeginGroup();
void BeginGroup(string msg);
when I want to refer to them I write
/// <see cref="BeginGroup"/>
But this cause a compiler warning, where my declaration is ambiguous (between the 2 BeginGroup methods).
But what if I want to refer them both?
In much the same way as when you click on "Console.WriteLine" and you go to the page which lists all the possible polymorphic variations?
|
|
|
|
|
My main form can open multiple non-modal child windows (FormBorderStyle.FixedToolWindow, Owner set to the main form).
The main form has a MainMenuStrip with items that have shortcuts (e.g. Ctrl+F for "find", Ctrl+R for "replace"). But inside the "find" dialog, pressing Ctrl+R has no effect (well, it plays a beeping sound...).
How can I send the key presses to the MainMenuStrip? I want to forward only those key presses that are not handled by the child window.
|
|
|
|
|
Hello
I think this would be a simple task -Even though I don't think I like the idea-
Simply -I suppose- you have your KeyUp event handlers in your child forms. When they catch a key that should be passed to the parent they should call a public method to your main From.
eg.
ChildFormKeyDownHandler(EventArgs e)
{
//Handle my keys
//...
//...
if(e.Key == somekey)
{
myParent.PublicMethod();
}
}
While sending the keys themselves to the parent form won't gain you anything.
Yet if you still insist on this try looking for "SendKeys" class in your MSDN
|
|
|
|
|
I cannot use SendKeys because I don't want to change focus to the main window.
And thanks, I know how to call public methods on other forms, but I did not find a way to call shortcuts in a MainMenuStrip.
I don't want to write the code searching the correct item for the shortcut myself because the main menu can be extended by AddIns in different ways.
|
|
|
|
|
Hello again
I didn't mean to offend you in any way, yet just like I said, what is the point of calling a shortcut of a form that's not active!! Anyway I'm just trying to help here.
Three hints:
1- You can activate the parent form, do the SendKeys, then reactivate the last active child form
2- You can import an old API function named "SendMessage" or "PostMessage", tyhen use your parent's Handle to send a WM_KeyDown message.
3- You can make the parent's event handlers call public methods, and call them from the child froms
Or you can just check this link, it might help
http://www.codeproject.com/cpp/sendkeys_cpp_Article.asp[^]
Sorry it's C++;)
That was all I could come up with. I hope it would be of some use.
|
|
|
|
|
How can I do that?
I'm experimenting exceptions when trying to save an xml document with the XmlDocument object in a web service.
Thanx for any help.
|
|
|
|
|
What exceptions?
---
b { font-weight: normal; }
|
|
|
|
|
Excepción no controlada del tipo 'System.Web.Services.Protocols.SoapException' en system.web.services.dll
Additional info: System.Web.Services.Protocols.SoapException: Server cannot process request. ---> System.UnauthorizedAccessException: Access denied to path "D:\Uni\Proyecto\DatosSI0506\Configuracion\Config.xml".
I've translated some of the text.
I've tried a bunch of things and none work. I even tried to delete the file first, so it can save it correctly without overwriting, but it's useless. It doesn't let me delete.
|
|
|
|
|
Is the file located in the web folder? If not, then you might need to grant access to it for the user account running the web service. Usually it's the IIS_WPG or ASPNET account.
---
b { font-weight: normal; }
|
|
|
|