|
It really depends on how this is used, but again - you don't need to get the Socket back if you already have it. If you instantiated the Socket in your code (obviously you did), then you already have a reference. You only use the GCHandle for the purpose of calling unmanaged APIs. The original Socket reference that you passed to GCHandle.Alloc is still valid - all you did was pin it into memory (depending on how you used the GCHandle ) so that it wouldn't be moved by the GC while being used in unmanaged code.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
as i know, if we wanna deal with blob, we may use the image data type.
but my problem is, how can i insert the bytes to the database?
i have tried the following codes but it doesn't work
byte[] photo = GetPhoto(photoFilePath);
.
.
.
SqlCommand addPic = new SqlCommand ("INSERT INTO photoTable Values(" + photo + ")");
.
.
.
public static byte[] GetPhoto(string filePath)
{
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
byte[] photo = br.ReadBytes((int)fs.Length);
br.Close();
fs.Close();
return photo;
}
thanks
|
|
|
|
|
Use parameterized queries, which is better to use anyway that concatentating strings together, which is error prone and can lead to security holes if you don't check user input correctly (parameterized queries have many other benefits over what you're doing, which is the old, insecure way).
SqlCeCommand addPic = conn.CreateCommand();
addPic.CommandText = "INSERT INTO photoTable (Photo) VALUES(@Photo)";
SqlCeParameter picParam = addPic.Parameters.Add("@Photo", SqlDbType.Image);
picParam.Value = GetPhoto(photoFilePath); This query is much less prone to error and makes binary data possible to work with, unlike string concatenation.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hi all, I am experiencing a problem and I am not sure how to go about fixing it. I have an ASP.net app that is reading from a database. I have a default database file path hardcoded into my program that the program will use if the user does not specify a database file. When executed, if the program tries to access the default database it is failing. It seems like .net is adding a "C:" to my file path where it should be "\\dir1\\dir2\\DB.mdb" Can anyone help me out so that I can access the default database on the LAN. Thanks again
|
|
|
|
|
NEVER hard code a file path. Put the filepath in the appSettings section at the bottom of the Web.config file and use ConfigurationSettings.AppSettings to get it (defaulting to a hard-coded path if you like). When you do it this way, do not escape back-slashes (that's specific to a programming language - not strings).
If you want to use a file from a share, then use "\\\\SERVER\\SHARE\\Dir1\\DB.mdb" or @"\\SERVER\SHARE\Dir1\DB.mdb" (notice the @ , which is a literal character identifier).
Many of the IO members - unless you give them a URL - will assume a local path, which is why "C:" is being prepended to your string (well, the string isn't actually changed but the behavior is the same).
If this file is in your virtual directory structure of your web application, 1) make sure it's protected from user's downloading it but so that the web application can access it, and 2) use Server.MapPath or Page.MapPath to map the virtual path (like /db/db.mdb) to a physical path (like C:\Inetpub\wwwroot\db\db.mdb).
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Updating database with changes to dataset on Form Closing
Here is my form closing method:
private void DivFrmClosing(object sender, System.ComponentModel.CancelEventArgs e)
{
int i;
if (dataSet11.HasChanges())
i = dbUpdate(); // method to update table
...
}
Row of data gets updated only when a new row has been added(focus is lost from that row)!!
How do I get around this to accomodate update of a row even when focus is not lost from current row?
|
|
|
|
|
You have to use DataGrid.EndEdit with the appropriate cell information:
DataGridCell cur = dataGrid1.CurrentCell;
DataGridColumnStyle col = dataGrid.TableStyles[0].GridColumnStyles[cur.ColumnNumber];
dataGrid1.EndEdit(col, cur.RowNumber, false); You should add proper error checking and handling, of course. This is only an example. Read the .NET Framework SDK documentation for the classes and members used in the example for more information.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I'm having a problem in VS2K3 whereby a file reference of a project reference isn't being copied to output folder upon compilation.
Here's the solution structure:
ProjectA
References
Assembly1.dll (File reference; CopyLocal = True)
ProjectB
References
ProjectA (Project reference; CopyLocal = True)
After compiling:
ProjectA's output folder contains:
ProjectA.dll
Assembly1.dll
ProjectB's output folder contains:
ProjectA.dll
ProjectB.dll
(but not Assembly1.dll)
Has anyone seen or resolved this?
Craig Boland
|
|
|
|
|
Select the reference under the References node and look at the properties. There is a property to control whether the assembly is copied to the target directory. If the assembly with the same name (name, version, culture, and public key token) is installed into the GAC, you should not copy the assembly to the target folder since the CLR checks the GAC first.
If the property is set to copy the assembly, then check your compiler warnings. Many times a file may be in use and cannot be copied from its source directory (or if the destination is in use, it can't be copied over). The only fix is to restart VS.NET and try again.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Heath,
Thank you for taking time with my question.
All references, as stated in the problem definition, are set to CopyLocal=True, yet indirect dependencies (references of references) are not copied, at least not file references.
Looking at the various projects in my solution, I see the Project references are linked to the 'obj' folder of the referenced project. Now I wonder when dependencies are copied and how they are determined, because this process seems to miss the indirect file references. Interestingly, however, the Deployment projects do a more exhaustive search along the dependency hierarchy because it finds many related files. My solution uses MS Commerce Server and some of the projects have two dozen or so dependencies, most of which don't need to be deployed because Commerce Server is a product pre-installed on the target machines.
While writing this reply, I created a small sample project to illustrate my point. In the sample, App1.exe has a project reference to ProjRef1.dll. ProjRef1 has a file reference to FileRef1.dll (which is not part of the solution) and, naturally, it works correctly. Maybe there's a problem with the size of my solution (30 projects).
|
|
|
|
|
Doubtful - I managed a 60+ project solution for builds, many of which have indirect dependencies.
Again, check your build output window for warnings about files being in use. This is most often the problem.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hi,
Does anyone know what happens with errors and threading?
I have a front-end app that spawns a new thread to call a method in a dll.
This all worked well, job got done, thread closes, everything happy.
OK, so now i've got live data: The app starts, appears to work, cpu drops to zero, but no output, an event that the dll should fire doesn't happen and the thread exited with code 0 message doesn't appear in the output window.
This leads me to believe that an error is occuring in the thread and the thread is vanishing for some reason. I have got error handling in the dll, but probably not enough.
Is there anything special i have to do to get errors passed back out of the thread, there seem to be a lot of web pages talking about threading, but none seem to involve error handling.
Thanks in advance if you can help, point me in the right direction
Russ
|
|
|
|
|
See the Application.ThreadException event documentation in the .NET Framework SDK.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I have a dataset (theDataSet) that contains three tables. One parent (table1), a child(table2), and a child of the child (table3). I am using dataGrid2.SetDataBinding(theDataSet, "table1" ) to have the tables displayed. This all works well. The problem is, I do not want to allow the user to delete or add rows in table1 and table2. Before I did the SetDataBinding and relation stuff I used a dataView with allowDelete and allowNew set to false. (Thanks for that one Heath ) How can I incorporate a dataView with what I have now.
Thanks in advance
Jenny
|
|
|
|
|
The same as before. Create a DataView over whichever tables you want to change the behavior of and bind those by setting the DataGrid.DataSource property to the DataView s.
If those tables are all related by specifing the relationship between tables as the DataSource , then you'll have to get the DataTable from the DataRelation , get the DefaultView , and then set those properties.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I tried this and it doesn't work. What am I doing wrong?
dr = new DataRelation("Class Limits",theDataSet.Tables["table1"].Columns["NoOf"],
theDataSet.Tables["table1"].Columns["NoOf"]);
dataGrid2.SetDataBinding(theDataSet, "table1");
DataTable pt = dr.ParentTable;
pt.DefaultView.AllowDelete = false;
pt.DefaultView.AllowNew = false;
|
|
|
|
|
Actually, I said if you have related tables being displayed in a DataGrid that you assign the DataRelation as the DataGrid.DataSource . You've created a DataRelation , but you haven't done anything relevant with it.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I'm sorry for my stupidity in this matter, but I obviously just don't get it. Can you give me an example of what you are talking about?
|
|
|
|
|
It's all covered in the .NET Framework SDK. For example:
DataRelation("CustomerOrders",
ds.Tables["Customers"].Columns["ID"],
ds.Tables["Orders"].Columns["CustID"]);
dataGrid1.AllowNavigation = false;
dataGrid1.DataMember = "Customers";
dataGrid1.DataSource = ds;
dataGrid2.DataMember = "Customers.CustomerOrders";
dataGrid2.DataSource = ds; Now you're got two related tables. Selecting a row in the Customers DataGrid (dataGrid1) will show related rows from the Orders table in the Orders DataGrid (dataGrid2). See the DataGrid.DataMember for more information.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
My Table "Adressen" has as PrimaryKey "adid".
When I want to update the Adressen Table occurs an error:
Procedure sp_AdressenUpdate expects parameter @Original_adid which was not supplied.
This error occurs only if I edit a row and update, NOT when I add new Rows and update then.
The parameter @Original_adid exists.
I hope you can help me!
Thanks
Stefan
|
|
|
|
|
STW wrote:
This error occurs only if I edit a row and update, NOT when I add new Rows and update then.
Because it's used only in the DataAdapter.UpdateCommand and, thus, must be added to the DataAdapter.UpdateCommand 's Parameters property. The data adapter designer will do this for you if you opt for it.
The exception would not be thrown if the Parameters property contained the parameter correctly - i.e., it's named "@Original_adid" and is declared as the correct type.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I want to create control inherited from UserControl class. I need this control to be scrollable (I‘m using Autoscroll property) and I want to paint its background with linear gradient brush. When I do this and scroll the control it doesn‘t redraw correctly. Can anybody point me to some tutorial, or at least tell me how to get something like OnScrollEvent (I couldn’t find anything like that in the Control class. thanks
Salut!
|
|
|
|
|
Hi,
Could any one share with me the source in C# for adding, updating and deleting data in a SQL server database using ADO.NET.
A simple windows application would be of great help.
Thanks
Saleem.
|
|
|
|
|
The documentation for the SqlDataAdapter Class[^] in the .NET Framework SDK contains plenty of examples and all the documentation you need. Reading the class library documentation in the .NET Framework SDK is important. If you have a question about a specific class (or struct, interface, method, property, etc.), I recommend you read the SDK documentation first.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I have written a short piece of code that goes of to a URL and retrieves and XML formatted file. The file that is returned is dicatated by a URL parameter.
If I go directly to the URL in a browser, the XML document is displayed correctly and fully. When I attempt to do this through code the last quarter of the XML string is made up of escaped 0's (i.e. \0)
The code I have is as follows :
string endPoint = "https://myserver/xmlprovider?id=123";
HttpWebRequest samlRequest = (HttpWebRequest)WebRequest.Create(endPoint);
HttpWebResponse samlResponse = (HttpWebResponse)samlRequest.GetResponse();
Stream responseStream = samlResponse.GetResponseStream();
byte[] buffer = new byte[samlResponse.ContentLength];
responseStream.Read(buffer, 0, buffer.Length);
string returnData = System.Text.Encoding.ASCII.GetString(buffer);
responseStream.Close();
Does anybody know what could be causing this?
post.mode = postmodes.signature;
SELECT everything FROM everywhere WHERE something = something_else;
> 1 Row Returned
> 42
|
|
|
|