|
What do you mean by working with Excel from vb6? Do you just want to display only data on the form or display it in any control and you could edit its data? But first, try to check from google search result.[^]
|
|
|
|
|
Sorry for not being so clear...
I mean editing (readin/writing) data in excel sheets...
Thanks
|
|
|
|
|
|
Thanks... I found what I needed
|
|
|
|
|
can any one tell me how to connect combobox with datagrid in VB.NET
PLZ MAIL ME AT toneeraj.kumar@yahoo.com
neeraj kumar
|
|
|
|
|
<asp:datagrid id="dataGrid1" HorizontalAlign="Center" BorderColor="#CCCCCC" Runat="server" Width="792px" OnItemDataBound="dataGrid1_ItemDataBound" AllowSorting="True" AutoGenerateColumns="False" OnSortCommand="dataGrid1_SortCommand" Height="224px">
<Columns>
<asp:TemplateColumn>
<HeaderStyle Font-Bold="True" HorizontalAlign="Left"></HeaderStyle>
<ItemStyle HorizontalAlign="Left"></ItemStyle>
<HeaderTemplate>
first column
</HeaderTemplate>
<ItemTemplate>
<asp:DropDownList ID="dd" Runat="server" OnSelectedIndexChanged="dataGrid1_SelectedIndexChanged" AutoPostBack="True"></asp:DropDownList>
</ItemTemplate>
</asp:TemplateColumn>
</column>
</asp:datagrid>
add the above code in html in between form opening closing tag
Shipra Pandey
Software Developer
Solversa Technology Pvt Ltd.
|
|
|
|
|
|
Hello everyone,
I'm currently a VB.NET guy and I need to create a 3D interactive globe and I have no idea if VB can do this of if there is another language that makes it easier. Can anyone point me in a good direction to create an interactive globe and find a way to distribute it as software.
No, I'm going going for a google earth thing either. I am creating it for a game, and it needs to be *like* Age of Myth or something similar in the fact that it needs to be zoomable and able to be spun around with the mouse, but that's about it. Well, actually it needs drag and drop capabilities.
Any suggestions are appreciated.
Mike
Gaming at the GuildofBlades.com is the only way to really experiece the level 99 Soul-Sucking Sword!
|
|
|
|
|
It is of course possible in VB.NET but extremely difficult!
The best solution would be to use Managed DirectX, there is an SDK for download on the MS site somewhere, (it's big, ~300MB I seem to remember) and this has samples in C# and VB.NET.
You'll need a powerful computer to run it though, I tried some of the samples and it ran quite slowly.
Another alternative is OpenGL but I don't know how this fares up, I havn't tried it.
Ed
|
|
|
|
|
I looked into downloading that DirectX thing and according to April's SDK, it's only in C++ and C#? Am I missing something?
Mike
Gaming at the GuildofBlades.com is the only way to really experiece the level 99 Soul-Sucking Sword!
|
|
|
|
|
Those are the languages which MS provide examples in I'm guessing but of course anything that C# can do VB.NET can do as well. It shouldn't be too difficult to understand what the C# code does since they will be using exactly the same classes.
An important fact to bear in mind is that the only major difference between C# and VB.NET is the syntax.
I know that this is a VB forum but I'd strongly recommend certainly understanding C# enough to translate it to VB.NET.
So in summary it will work with VB but probably none of the examples are provided in VB.
Something that might be helpful is #Develop which has a built in C# to VB, VB to C# (and some others like Boo) translators.
You know you're a Land Rover owner when the best route from point A to point B is through the mud.
Ed
|
|
|
|
|
Hey guys, I've got a problem:
I'm using vb.net 2005 and to make sure that my program only runs one instance and retrieves the arguments specified when it has been run a second time, I used this[^] code. I converted it to vb.net 2005 and after disabling the application framework, it finally worked out. But now I've got 2 problems, when the application framework is turned off:
1. The icons in my program are ugly
2. My datagridview doesn't work properly anymore
I need to have the application framework turned off because the code I mentioned above needs a sub to start up which is only possible when the application framework has been turned off.
I can't find a solution... Anyone able to help?
|
|
|
|
|
Well guys, I found the solution to my problem and it's so easy!
First of all, turn on the application framework and check the single instance checkbox underneath in the settings. Then, add this little chuck of code to your project:
<br />
Namespace My<br />
Partial Friend Class MyApplication<br />
<br />
Private Sub MyApplication_Startup(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup<br />
Try<br />
msgbox(e.CommandLine(0))<br />
Catch<br />
<br />
End Try<br />
End Sub<br />
<br />
Private Sub MyApplication_StartupNextInstance(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventArgs) Handles Me.StartupNextInstance<br />
e.BringToForeground = True<br />
Try<br />
msgbox(e.CommandLine(0))<br />
Catch<br />
<br />
End Try<br />
<br />
End Sub<br />
<br />
End Class<br />
End Namespace<br />
The sub MyApplication_Startup starts when the first instance get's run, you can insert your own chunk of code there. The other sub starts when a user tries to start a second instance of the same application. Easy, isn't it?
|
|
|
|
|
Hello All,
We are developing applications based on a off-the-shelf PCI card using the PCI 9030 controller. The PCI9030 comes with the SDK to communicate to it, which has device drivers that compile as a DLL (PLXAPI.DLL) in VC++.
However in .NET, they fail on the 'Handle' data type. The Handle datatype is declared as: typedef void *HANDLE in VC++.
However, in .NET, the closest I can find is IntPtr or Integer. Both fail. The function always considers the handle as NULL if it is an integer and causes a System.NullReference.Exception if it is an intptr. Since we have VC++ that creates the DLL, I was able to go thru the function (PLXPCIDeviceOpen) and internally the handle does not match any datatype. Where are things going wrong?
I have pasted below both the .NET function prototype and the actual code of the function from the VC++
.NET
Public Declare Function DeviceOpen Lib "PLXAPI.DLL" Alias "PlxPciDeviceOpen" (ByRef Device As PCIDevice, ByRef PCIDevHandle As IntPtr) As Integer
VC++
RETURN_CODE
PlxPciDeviceOpen(
DEVICE_LOCATION *pDevice, //Device location is bus/slot/vendorid etc
HANDLE *pHandle // verified - can find the device.
)
{
U8 VerMajor;
U8 VerMinor;
U8 VerRevision;
U32 i;
char DriverName[25];
IOCTLDATA IoBuffer;
RETURN_CODE rc;
if ((pDevice == NULL) || (pHandle == NULL))
//if ( (pDevice == NULL))
return ApiNullParam;
// Get the Serial number of the device, if not provided
if (pDevice->SerialNumber[0] == '\0')
{
i = 0;
// Search for the device matching the criteria
rc =
PlxPciDeviceFind(
pDevice,
&i
);
if (rc != ApiSuccess)
{
*pHandle = NULL;
return rc;
}
}
// If provided, the SerialNumber is sufficient to open a device
sprintf(
DriverName,
DRIVER_PATH "%s",
pDevice->SerialNumber
);
// Open the device
*pHandle =
CreateFile(
DriverName,
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_FLAG_DELETE_ON_CLOSE,
NULL
);
if (*pHandle == INVALID_HANDLE_VALUE)
{
*pHandle = NULL;
return ApiInvalidDeviceInfo;
}
// Add the handle to the device list.
if (DeviceListAdd(
*pHandle,
pDevice
) == NULL)
{
CloseHandle(
*pHandle
);
*pHandle = NULL;
return ApiInsufficientResources;
}
// Verify the driver version
PlxDriverVersion(
*pHandle,
&VerMajor,
&VerMinor,
&VerRevision
);
// Make sure the driver matches the DLL
if ((VerMajor != PLX_SDK_VERSION_MAJOR) ||
(VerMinor != PLX_SDK_VERSION_MINOR) ||
(VerRevision != PLX_SDK_VERSION_REVISION))
// Get device data from driver
IoMessage(
*pHandle,
PLX_IOCTL_DEVICE_INIT,
&IoBuffer
);
// Copy device information
*pDevice = IoBuffer.u.MgmtData.u.Device;
// msgbox put here indicates that function gets here.
return ApiSuccess;
}
|
|
|
|
|
Try passing the parameter ByVal instead of ByRef. For handles, the correct datatype should be IntPtr:
Public Declare Function DeviceOpen Lib "PLXAPI.DLL" _
Alias "PlxPciDeviceOpen" ( _
ByRef Device As PCIDevice, _
ByVal PCIDevHandle As IntPtr) As Integer
If not done correctly, you might also have a problem with the PCIDevice type, whatever that is.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
Thank you very much. Even with Byval, the System.nullexcepton occurs and infact I do not get a handle value at all. (With ByRef, I do get the correct handle back as an integer along with the system.nullexception.
--this is how the handle type is defined in the PLXAPI.DLL
typedef void *HANDLE; (in winnt.h)
typedef HANDLE PLX_DRIVER_HANDLE;
typedef int PLX_DRIVER_HANDLE;
--
So, I think that Handle is an integer in VB.NET?? However the structure type, as you suggested, has a problem:
The structure is defined as:
(in DLL)
typedef struct _DEVICE_LOCATION
{
U8 BusNumber;
U8 SlotNumber;
U16 DeviceId;
U16 VendorId;
U8 SerialNumber[12];
} DEVICE_LOCATION;
----------------
VB.NET Structure - my equivalent
Structure PCIDevice
Dim BusNumber As Byte
Dim SlotNumber As Byte
Dim DeviceId As Short
Dim VendorId As Short
Dim SerialNumber() As Byte
End Structure
---------
Values sent to DLL (which modifies these values and I think thats where it is crashing!!!!)
dim device as pcidevice
Dim serialno As String = "PCI9030-0"
Device.BusNumber = System.Convert.ToByte(1)
Device.SlotNumber = System.Convert.ToByte(0)
Device.VendorId = System.Convert.ToUInt16(&H10B5)
Device.DeviceId = System.Convert.ToUInt16(&H9030)
ReDim Device.SerialNumber(11)
Device.SerialNumber = serialno.ToCharArray
---------
DLL DEBUG LOG SAYS:
Dev->BusNumber = 01
Dev->SlotNumber = 00
Dev->DeviceId = 9030
Dev->VendorId = 10B5
Dev->SerialNumber =
-------
serial number field goes in blank. so it is nto translated correctly. All the rest of the values are correct. On return, the DLL tries to write to the serial number "PCI-9030-0" back to the structure in the serial number field and I that is where I think it is failing. the serial number is assinged by teh dll in this generic fashion and since there i sonly one PCI-9030 device in our setup, that number never changes.
So, somehow I have to translate the serialNumber field to teh DLL correctly and make it a datatype that the C dll can write to.
|
|
|
|
|
Thanks all,
the serial number field needed to be 'Long'. and handle works as intptr, integer either.
this problem has been resolved!
|
|
|
|
|
Hey,
I'm having a little problem.
In my applicaton I have a combobox that is bound to a dataset. The dataset retrieves "Users" from my database. My combobox is bound as follows:
cboIncidentHandler.DataSource = busAllUsersDS.Tables("tbl_IMS_Users")<br />
cboIncidentHandler.DisplayMember = "UserFullName"<br />
cboIncidentHandler.ValueMember = "UserId"
Now, I have some textfields I want to be filled up with other data from the dataset (like UserEmail, UserPhone, etc.).
Is there someone who can help me out with this? What is the best way to do this?
Thanks in advance!!!
G72360
|
|
|
|
|
Depending on the functionality you want, this is easy enough.
On the SelectedIndexChanged (? from memory) event, get the ValueMember and do another lookup on the database that returns the fields you want based on that UserId number. You can either directly change the Text properties of your TextBox's from the record that is returned or bind the TextBox's Text properties to each field.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
I am working within a VB.NET [windows forms application] /SQL Server 2000 db. When a user changes the recordset I want to be able to notify the others that reload this recordset that this record has been modified.
A colleague of mine recommended that I add a Hash value to the changed recordset. This way I can compare the hash values to see if the recordset has been modified.
Having never worked with the Hash Algorithm but after reading about it, sounds like the right plan to follow.
However, I cannot find a tutorial on working with hash values with a recordset and wondered if someone had some advice on this subject.
Any help would be greatly appreciated,
Thanks in advice & Happy Easter,
~Brad
-- modified at 14:15 Friday 14th April, 2006
|
|
|
|
|
There's a problem with this. Your clients would have to have a central server to accept change notifications and relay them to the other clients.
You might want to look at SQL Server's Notification Services[^] first.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
Dave,
Currently this Application is running on a server. It has 10 or more client machines that all use the same log in to the Application using the same Username found within Active Directory / roles.
Scenerio:
Inside my App. I have a datagrid that I populate using an SQL StoredProc to display records to the user. The problem is because the Application has only 1 log in, I cannot verify which user has changed the recordset. When 1 or more users opens a record to modify it, I allow the first user to have control over the record and display a message to the other users that try to open it. I perform this by setting a different value to the tables record being modified. The problem arise when the user that has modified the recordset and saves the record to the Db. The other users are now seeing the old recordsets in their datagrid because I have no way to automatically REFRESH their screens with the new datagrid recordset information.
A colleague of mine suggested that I add a Hash value to the record uponLOAD of the datagrid then when the user changes the state of the record I can see if the value has been changed. If I know it has been changed then I can notify the users to REFRESH their screens for their datagrid.
I do not have an Audit trail table that I can access to see if a particular user is working on a particualr table. In addition, I think that b/c I am using Active directory with only 1 Log In Username, I really cannot follow what each Client machine is doing to the records in my DB.
Any advice would be greatly appreciated as I am stumped as to how I can fix this issue within my Application.
Thanks in advance,
~Brad
|
|
|
|
|
None of this has any bearing on the problem if you use Notification Services. Clients register for notifications of changes to the underlying database. If a record is changed and there are clients registered for notifications, then each client will get a change event they can handle to refresh their datasets.
You really don't need a hash table for anything. The only other way to do this is to write a server component that manages access to the database for the clients. The clients communicate with the server component and "check out" blocks of records in the database. Frankly, you'd be writing an alternative to Notification Services.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
Dave,
SQL Notification is something very cool and something I will definitlly look into it in order to increase my arsenal of design techniques. However for this particular functionanlity it is quite innapropriate (over kill to say the least). From what i read/understand, the notification makes sense when you have data driven behavior, this is not the case with the functionality of my Application.
For my App. I simply want to check if a row has changed or not. Not act when a row has changed. I am not sure if you see the nuance.
All this to say, SQL Notification is nice, however, not for my application. With the research I now know from your help/advice I may apply it when it fits the model or a behaviour that lends itself to it, keyword is "data driven behaviour" and this is not my Application, though I thank you for your advice.
I found an approach that I will implement for my particular situation, called the hash signature <a href="http://en.wikipedia.org/wiki/Hash_function" rel="nofollow">http://en.wikipedia.org/wiki/Hash_function</a>[<a href="http://en.wikipedia.org/wiki/Hash_function" target="_blank" rel="nofollow" title="New Window">^</a>]
Thanks again,
~Brad
|
|
|
|
|
Brad6ft4 wrote: quite innapropriate (over kill to say the least).
Yeah? Wait till you get done implementing this in your own code. You'll sit back, look at this code, and think, "Hey, maybe it wasn't overkill after all..."
Brad6ft4 wrote: I simply want to check if a row has changed or not.
Precisely when do you want to do this? Theres a couple of ways of doing this, but what works depends on your requirements. You have a concurrency problem.
You can lock the records so that only one client gets a Read/Write copy of the data, but if all your clients on working on the same set of records, this won't work. The first client to lock the records is the ONLY client that gets to ever attempt to write any changes back.
If that doesn't work for you, you'll have to implement some kind of "checkout" scheme in your SQL. Since each client has to check to see if the record they have is different from the one it has already, you have to read the values from the database BEFORE you can write the changed data back. The record can change between the time any one client reads it to check for a change and when that same client attempts to write the change back out to the database. You'll have to implement some kind of locking mechanism so that when you read a record to check for a change, you're actually "checking it out" like a book from the library. This part MUST be done in a stored procedure in the database.
From a logic point of view, the stored proc has to attempt to check the record out before it checks to see if the record changed, THEN read and pass it to the client. You'll have to implement a "check out" scheme in SQL. pass some kind of ReadOnly flag in the dataset to go with it. The database has to tell any client that attempts to check to see if it can write data back to the database that the record is already checked out.
Now, using Notification Services, if a record changes, it can automatically notify each client to do something very simple. Re-query the database for this one record.
It's your call...
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|