|
Ur right, that was the problem. user is a keyword!!
THANKS
|
|
|
|
|
Actually you don't. DataAdapter.Fill and DataAdapter.Update - or rather the default implementation of DbDataAdapter that extends DataAdapter and from which the other DataAdapter -derivatives directly derive) will open and close the connection if the connection was not open already.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
Hi,
I think that the message within the exception would help a little bit more.
So what you have to do is to put your method getNieuws in a try-catch:
<br />
public DataSet getNieuws()<br />
{<br />
try {<br />
string SqlString = "select * from user";<br />
DataSet dstResult= new DataSet();<br />
<br />
dataAdapter = new OleDbDataAdapter(SqlString, connectionString); <br />
dataAdapter.Fill(dstResult);<br />
<br />
return dstResult; <br />
} catch (OleDbException ex) {<br />
Console.WriteLine(ex.Message)<br />
return null;<br />
}<br />
}<br />
Then look at your console what the exception writes back...
I think that would help a bit more
Sebastian Martens
|
|
|
|
|
I Changed a few things but still the same error:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.Data.OleDb.OleDbException: The component FROM contains a syntax error.
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr)
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.FillFromCommand(Object data, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
at AISDBL.Database.getNieuws() in d:\ontwikkelmap\visual studio projects\ais\aisdbl\database.cs:line 33
at AIS.FrmLogin.btnLogin_Click(Object sender, EventArgs e) in d:\ontwikkelmap\visual studio projects\ais\ais\load\frmlogin.cs:line 141
at System.Windows.Forms.Control.onclick(EventArgs e)
at System.Windows.Forms.Button.onclick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 1.0.5000.0
Win32 Version: 1.1.4322.573
CodeBase: file:///c:/windows/microsoft.net/framework/v1.1.4322/mscorlib.dll
----------------------------------------
AIS
Assembly Version: 1.0.1818.29878
Win32 Version: 1.0.1818.29878
CodeBase: file:///D:/Ontwikkelmap/Visual%20studio%20projects/AIS/AIS/bin/Debug/AIS.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 1.0.5000.0
Win32 Version: 1.1.4322.573
CodeBase: file:///c:/windows/assembly/gac/system.windows.forms/1.0.5000.0__b77a5c561934e089/system.windows.forms.dll
----------------------------------------
System
Assembly Version: 1.0.5000.0
Win32 Version: 1.1.4322.573
CodeBase: file:///c:/windows/assembly/gac/system/1.0.5000.0__b77a5c561934e089/system.dll
----------------------------------------
System.Drawing
Assembly Version: 1.0.5000.0
Win32 Version: 1.1.4322.573
CodeBase: file:///c:/windows/assembly/gac/system.drawing/1.0.5000.0__b03f5f7f11d50a3a/system.drawing.dll
----------------------------------------
System.Xml
Assembly Version: 1.0.5000.0
Win32 Version: 1.1.4322.573
CodeBase: file:///c:/windows/assembly/gac/system.xml/1.0.5000.0__b77a5c561934e089/system.xml.dll
----------------------------------------
AISDBL
Assembly Version: 1.0.1818.29877
Win32 Version: 1.0.1818.29877
CodeBase: file:///D:/Ontwikkelmap/Visual%20studio%20projects/AIS/AIS/bin/Debug/AISDBL.DLL
----------------------------------------
System.Data
Assembly Version: 1.0.5000.0
Win32 Version: 1.1.4322.573
CodeBase: file:///c:/windows/assembly/gac/system.data/1.0.5000.0__b77a5c561934e089/system.data.dll
----------------------------------------
************** JIT Debugging **************
To enable just in time (JIT) debugging, the config file for this
application or machine (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the machine
rather than being handled by this dialog.
I dont understand because it's simple code
|
|
|
|
|
'user' is a keyword. To use it (or any other access keyword) as a table or field name in a query you must surround it with square brackets.
try "select * from [user]"
Why would anyone waste time arguing with an accountant about anything? Their sole function is to record what happenned, and any higher aspirations are mere delusions of grandeur. On the ladder of productive contributions they are the little rubber pads at the bottom that keep the thing from sliding out from under you. - Roger Wright
|
|
|
|
|
Hi all,
What is the mechanism for implementation of the "undo" and "redo"
functions in those applications, e.g. in a text editor ?
Are there any sample codes or reference in C# ?
Thanks
|
|
|
|
|
How you implement undo/redo is entirely dependant on the type of data you're working on.
For example, for a bitmap editor, an incredibly simple way (but somewhat naive) is to have two dynamic stacks - an undo stack and a redo stack.
Every time you change the bitmap, just place a copy of the image before the change onto the undo stack.
When the user selects to undo, push the current bitmap into the redo stack, and pop the top image off the undo stack.
Now if you're smart, you can store just the change in the stack rather than the whole image, which will use less resources
One thing to note is that undo/redo is far easier to implement if it's done from the start - trying to shoehorn undo/redo functionality into an existing application can be incredibly tricky
--
Help me! I'm turning into a grapefruit!
Phoenix Paint - back from DPaint's ashes!
|
|
|
|
|
I'm calling an external COM object.
I want to be able to identify when it returns S_OK and when it returns S_FALSE.
Any other HREUSLT returned by the COM object is properly translated by the CLR to a COMException object. Nevertheless S_FALSE is treated as a success thus an exception isn't thrown.
How can I get this return code ?
I look at the registers and I can see EAX change according to S_OK/S_FALSE, but I can't access that data in any way.
Thanks
|
|
|
|
|
Hi,
Can anybody told me that how to share a single class between 2 or more then 2 developers on Visual source safe.
thanks
montu3377
|
|
|
|
|
The current version of VSS doesn't support multiple people having same file checked out. You'll have to take turns, wait for new version, or use a different source control application.
By the way this has nothing to do with C#
This posting is provided "AS IS" with no warranties, and confers no rights.
Alex Korchemniy
|
|
|
|
|
you mean to say that in C#2005 (express or whidbey) also we don't get facility of share class on vss as we are using vs2005.
|
|
|
|
|
Hi all~
E.g "Select * from table_A where firstName Like '%" + string + "%'";
How to change the ad-hoc sql to prepared statement using operator 'like' and '%'?
Thanks
|
|
|
|
|
Your question belongs in the SQL / ADO / ADO.NET forum. This forum is for questions related to C# only.
Forums more specific to ADO.NET and ASP.NET exist for questions about such topics despite what language you use, since all managed languages compile down to pure or mixed Intermediate Language (IL) and have access to the Base Class Library (BCL; at least what is CLS-compliant as dictated by the Common Language Infrastructure (CLI)).
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
Hi,
I need to display avi file using DirectX and C#. Later stage I need to save frames from this avi file to a bmp file. I would appreciate if someone can provide examples/tutorials and more info.
Thanks
|
|
|
|
|
Rather than taking a dependency on the rather large Managed DirectX 9 assemblies (and required DirectX 9 runtime) or - worse - marshaling so much data across managed and native boundaries by P/Invoking the native APIs, consider ripping frames from an AVI if you have control over what codec they use (i.e., they're not using the DivX codec for video, for example).
Take a look at some of the articles from a search for AVI[^] on this site (always a good idea to search, first). Many of these articles - especially from Corinna - detail how to display and rip AVI frames.
If you need to display about any video format (taking into account any possible audio codec the A/V file may use), then you'll need to take a dependency on DirectX[^] (about 34 MB from http://www.microsoft.com/downloads/details.aspx?FamilyId=2C40A7A5-7742-44D2-9F5C-420815448EA4&displaylang=en[^], which includes both the runtime and managed assemblies).
Playing video and audio in Managed DirectX couldn't be easier:
using System;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.DirectX.AudioVideoPlayback;
class VidExample : Form
{
static void Main(string[] args)
{
if (args.Length > 0)
Application.Run(new VidExample(args[0]));
else
Console.Error.WriteLine("Please provide a video filename.");
}
VidExample(string filename)
{
Video vid = new Video(filename);
vid.Owner = this;
vid.Play();
}
} Use the Video class and set the Video.Owner property to a Control that acts as the surface. Open a file or URL and call Play .
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
Hi, does anyone know how can put in the datagrid textbox with the values that comes from a Database?
Thx
|
|
|
|
|
marck.santos wrote:
datagrid textbox
What's a "datagrid textbox"? You mean the DataGrid class? Read the documentation[^] for the DataSet class, which contains examples in both C# and VB.NET about how to fill a DataSet using a DataAdapter derivative like the SqlDataAdapter (for Microsoft SQL Server 2000) then how to bind the DataSet to a DataGrid .
Read the documentation[^] for the DataGrid for information and examples more specific to the DataGrid , since a DataSet can be bound to many different data-bound controls.
There's a lot of information and examples that need not be repeated here. You can find information about pre-defined table styles (column types, formats, and sizes) in the DataGrid.TableStyles property documentation. You can read information about updating a database from changes in a DataSet by reading the documentation for the DataAdapter.Update method (which derivates like SqlDataAdapter and OleDbDataAdapter inherit).
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
C# allows you to pass value types (struct) by reference using the ref and out keywords. In my code, I tend to pass large structs using ref even when the function that I am calling does not make any changes to the struct that need to be passed back to the calling function. I do this because I assume that passing a reference is much faster than copying the structure onto the stack. However, it has occurred to me that perhaps C# implements passing by reference by copying the structure onto the stack and then copying it back when the function call returns. The reason that I am suspicious of this is that C# allows you to pass a value type that is embedded in a managed object by reference. If C# is truly passing those structures by reference (passing the address) then C# would also have to lock (pin) the enclosing class object in memory until the function call returns just incase the garbage collector code kicked in and wanted to move the enclosing object which would invalidate the address. I am suspicious that C#’s designers might have chosen to copy structures that are passed by reference twice rather than pin the enclosing classes.
I am also curious what is going on when the function that is called is a method of the struct and the struct is embedded in a managed object (class or array). Again, it seems to me that either the enclosing managed object would have to be pinned or some copying is going on.
Does anyone know what is really going on and what the most efficient way to pass large structures is? Thanks so much for the help.
Paul Sawyer
|
|
|
|
|
This is called boxing and unboxing[^]. When you pass a struct by reference or as an object (including interfaces) an object is created on the heap to match the struct and the struct's data is copied to the object. Unboxing is when an instance of a struct is created and the object data is copied to its fields. This is a very expensive operations and is one of the major reason that generics were introduced into the CLI 2.0 and C# 2.0.
Ask yourself why you have a struct? Is it a remnant of your C/C++ experience? Forget what you know about pointers in C/C++. It hardly applies (it's still important when P/Invoking and with COM interop, but you seem to already have some idea since you know about pinning).
Structs in .NET are for short-lived, small data structures. Anything that has a lifespan and gets passed around quite a bit should be a class.
If you use a disassembler like ildasm.exe or a decompiler like .NET Reflector you can actually see that instead of structs Microsoft uses classes internally within the BCL quite a bit to avoid the boxing and unboxing. When the class is marshaled to managed code - and is attributed and written to align properly - native code sees it as a struct. A class is, after all, not much different than a struct in native code.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
The purpose of ref and out keywords is to make your code more readable and usable for other developers. (And not to convert value type to reference types, although it is a side-effect)
Each time you want to refer a value type as reference type, is it ‘boxed’ i.e. copied to heap and the reference is thus created.
To answer your final question: Ideally (since structures are value types in C#) you should have them lightweight, that ensures best performance. If your structure is big, it is an ideal candidate to be an reference type (a class object).
Salil Khedkar [^]
|
|
|
|
|
hi,
i am writing a simple Stored Procedure [Sql Server 2000] to check employee's login ... this stored procedure.. supposed to return "YES" or "NO.. if login and password match... here is the code for stored procedure :
----------------------------------
CREATE PROCEDURE spCheckEmpLogin
@Login char(6), @EmpPassword char(8) , @RetVal char(3) OUTPUT
AS
DECLARE @tmp char(4)
SELECT @tmp = EmpPassword FROM tblEmployees WHERE Login=@Login
IF @tmp <> @EmpPassword
BEGIN
@RetVal = 'NO'
END
RETURN;
GO
---------------------------------------
when i click on "Check Syntax" button.... server returns this error :
Error 170: Line 11 : Incorrect Syntax near '@RetVal'
......................................................
well ... in line 11 : i am assigning 'No' to @RetVal... [it's a simple assignment]....
can you please tell me what i am doing wrong????
thanx in advance
|
|
|
|
|
Hi,
First of all, I think you posted this message in the wrong message board (this is C#).
In answer to your question, line 11 should read like this:
SET @RetVal = 'NO'
Hope this helps!
~javier lozano
(blog)
|
|
|
|
|
hello,
i have the table brands with 2 columns brand_id and name. I'm creating a new row in my dataset in the table brands after i added the new row i need to update the database that is no problem but the auto increment number that is created for example brand_id: 11
i need that number. The database where the data is stored in is a firebird database.
DataRow drBrand = dS.Tables["brands"].NewRow();
drBrand["name"] = "new brand";
dS.Tables["brands"].Rows.Add(drBrand);
adapterBrands.InsertCommand.Transaction = connection.BeginTransaction();
adapterBrands.Update(dS.GetChanges(), "brands");
adapterBrands.InsertCommand.Transaction.Commit();
So what i want is: I create a new row in the table brands with the name: "new brand" the database creates automatically a new auto increment number for example: 11 but the dataset is not updated when i view the dataset the value of: drBrand["brand_id"] = 0 it says. Can somebody help me to get the right auto increment number in the dataset so i can use that auto increment number.
thx
Sander
|
|
|
|
|
The way NET normaly does it (at least in SqlDataBases) is appending a Select command to the insert command in order to refresh the data in your dataset. I'm not really sure what parameters are used, but just create a small example with a SqlDataAdapter via designer and check out the insert commandtext. U'll see what I mean inmediately.
|
|
|
|
|
As I already told you, you need to read the documentation. connection.BeginTransaction will not update your your changes. DataAdapter.Update will connect to the database using the connection string, update the changes, then disconnect. A transaction only works when you're connected, and Update encapsulates that.
And as I also said before that the other post mentioned, you need to combine your INSERT statement with a SELECT statement and NOT insert your auto-generated fields, like so:
SqlCommand insertCommand = connection.CreateCommand();
insertCommand.CommandText = "insert into brands (name) values (@name); select id, name from brands";
insertCommand.Parameters.Add("@name", SqlDbType.NVarChar, 40).Value = "Bob";
adapterBrands.Update(ds.GetChanges(), "brands"); You may also need to set up the TableMappings property to map unnamed tables (like Table, Table1, Table2, etc., that match up to result sets) in order to fill the right tables. If you don't and have a pre-configured DataSet , the result sets won't match up with the DataTable s you've configured.
For simple SELECT statements just use a SqlCommandBuilder to construct the INSERT, UPDATE, and DELETE commands. It will automatically combine both the INSERT and SELECT statements for the InsertCommand property as I mentioned before. This information is all covered in the .NET Framework SDK.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|