|
I recently started a C# prototype using the OLE DB access method to read from a hefty Excel spreadsheet that we use at the office. The nice thing about OLE DB is you can read Excel worksheets pretty easily, and in block read style.
H O W E V E R, when was the last time you saw a clean error free, perfectly formatted spreadsheet?
That's where I am stuck. It seems the OLE DB driver/JET engine will happily retrieve the specified query range but it also supplies a null for any cell it doesn't like. Is there a way to override this behavior and tell Jet.OLEDB through the ExtendedProperties to retrive all data as is?
Currently I have specfied Imex=2 but that does not seem to be getting it done.
FYI, here is one way to read a worksheet in one read. In my case I know there are roughly 330-370 rows per worksheet:
<br />
OleDbConnection con = new OleDbConnection( connectionOpts );<br />
con.Open();<br />
<br />
string query = string.Format( "SELECT * FROM [{0}$[1]]", tableName, queryRange );<br />
<br />
OleDbDataAdapter oleAdapter = new OleDbDataAdapter();<br />
oleAdapter.SelectCommand = new OleDbCommand( query, con );<br />
DataSet ds = new DataSet();<br />
int rowsProcessed = oleAdapter.Fill( ds, "data" );<br />
<br />
oleAdapter.Dispose();<br />
oleAdapter.Close();<br />
etc.<br />
Since this is such a simple way to read the data, now all I need is a way to ensure it gets ALL of the data.
Mike Luster
CTI/IVR/Telephony SME
|
|
|
|
|
OK I know the PROBLEM, see the link:
http://support.microsoft.com/default.aspx?scid=kb;en-us;194124
Mike Luster
CTI/IVR/Telephony SME
|
|
|
|
|
I have a class with a "Tag" property, similar to a TreeNode - a blank object that can be set to anything, in order to extend the base instance in whatever way an end user wishes. Because my class is serializable, I want to place a restriction on the object that can be set to the "Tag", to make sure it is serializable as well. I tried something similar to the following code, but it does not work:
object[] attributes = value.GetType().GetCustomAttributes(typeof(SerializableAttribute), true);
if (attributes.Length == 0)
throw new ArgumentException("All extender objects must be serializable.", "value");
...
In fact, if I do the following on any class I've defined with the Serializable attribute, the serializable attribute is never displayed (but others are):
foreach (Attribute att in value.GetType().GetCustomAttributes(true))
System.Diagnostics.Trace.WriteLine(att.ToString());
As far as I've seen so far, the Serializable attribute is the only one this happens to (might be more, but this is the only one I've run into so far), so is there another way to determine if this attribute is defined for a class?
-----
In the land of the blind, the one eyed man is king.
-- modified at 13:19 Monday 13th March, 2006
|
|
|
|
|
The behaviour is strange indeed, however, AFAIK, you can use Type.IsSerializable
|
|
|
|
|
Wow - that's exactly what I was looking for to begin with, right down to the property name I was expecting for it - only when I didn't find it did I eventually find the GetCustomAttribute method that didn't work for this. How the heck did I miss that?!?!?!?
Thanks for pointing out my blindness, I think I'll go get my eyes checked now!
-----
In the land of the blind, the one eyed man is king.
|
|
|
|
|
You need to find all the serializable types within an assembly.
Solution
Instead of testing the implemented interfaces and attributes on every type, you can query the Type.IsSerialized property to determine whether it is marked as serializable, as the following method does:
public static Type[] GetSerializableTypes(Assembly asm)
{
List<Type> serializableTypes = new List<Type>();
// Look at all types in the assembly.
foreach(Type type in asm.GetTypes())
{
if (type.IsSerializable)
{
// Add the name of the serializable type.
serializableTypes.Add(type);
}
}
return (serializableTypes.ToArray());
}
The GetSerializableTypes method accepts an Assembly through its asm parameter. This assembly is searched for any serializable types, and their full names (including namespaces) are returned in a Type[].
In order to use this method to display the serializable types in an assembly, run the following code:
public static void FindSerializable()
{
Assembly asm = Assembly.GetExecutingAssembly();
Type[] serializable = GetSerializableTypes(asm);
// Write out the serializable types in the assembly.
if(serializable.Length > 0)
{
Console.WriteLine("{0} has serializable types:",asm.Location);
foreach (Type t in serializable)
{
Console.WriteLine("\t{0}", t.FullName);
}
}
}
|
|
|
|
|
I have retrived an web page content in one text box, now I want to retrive URLs from that content.So how can I do this.because different URLs have different Length and patterns so I am in trouble.Can any body help me?
Raj
|
|
|
|
|
you have to use regular expressions for something like this.
<br />
using System.Text.RegularExpressions;<br />
<br />
string linkPattern = "href\s*=\s*(?:""(?<match>[^""]*)""|(?<match>\S+))";<br />
Regex linkRegex = new Regex(linkPattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);<br />
Match linkMatch = linkRegex.Match(page);
while(linkMatch.Success)<br />
{<br />
string link = linkMatch.Groups(1).Value.ToString();<br />
....
linkMatch = linkMatch.NextMatch();<br />
}<br />
-- modified at 16:10 Monday 13th March, 2006
|
|
|
|
|
i have my user control in namespace called Test1 my user control name is class Header. and i am trying to call that user control in my project number two which is called Test2. i have add reference in my Test2 and
using Test1;
namespace Test2
{
public class default : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
Header proBarStatusUC = (Header) Page.FindControl("Header");
proBarStatusUC.Function1();
proBarStatusUC.Function2();
}//load
}//class
}//namespace
This work no problem, but when i try to LoadControl i get error 'file not found Header.ascx'.
using Test1;
namespace Test2
{
public class default : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
Header proBarStatusUC = (Header) Page.FindControl("Header");
proBarStatusUC.Function1();
proBarStatusUC.Function2();
Header proBarStatusUC2 = (Header) Page.LoadControl("Header.ascx");
phPlaceHolder.Controls.Add(proBarStatusUC2);
}//load
}//class
}//namespace
if i have my user control in same namespace it worked, that not what i want. i what to call my user control in different project becuase my header will look same for the project and i don't want to create user control for every project. can someone please help me... Thank you,
|
|
|
|
|
Hi, I don´t want to use the typical scrollbar from datagrid, I want to use two buttons, one "up" and other "down", but I don´t idea how i can do it !!!!
When I press "up" the scroll back 1 row, when I press "down" the scroll down 1 row. I don´t want use scrollbar because the program is going to use in a screen tablet, I think is easy to use two buttons instead of.
Any idea ????? Any example?????
Thanks in advance !!!!!!!
Coloso
|
|
|
|
|
I have a TextBox, i want to indecate the position of cursor in text that it is in the TextBox. But i did not find any property or method to do that?
Please help me!
Thanks very much.
superdragon
|
|
|
|
|
Try TextBox1.SelectionStart
Good luck.
Roy.
|
|
|
|
|
Thanks for you helping! i have tried, and it is ok now.
superdragon
|
|
|
|
|
Hi everybody i have one problem with showing of data in dataview;
I have table book
id_book pk
title
author
discription
categor_id int----//here is the problem
rathing
and
i whant to done GridView how can be edit,delete in net.2 envorment.My problem
is because category_id is int i want to exchange that int with string value which i take from xml file for example or another table but i don't know how to do that pleas help me
good bye
best regards
|
|
|
|
|
I'm creating a software for painting.
the user can create an working area like photoshop does.
I use as working area a PictureBox.
So if the use decide to create a very big working area like 2000 px for 2000, it should be very slow then the user may decide to create other bigger and the PC memory could be not able to.
What do you advice me to do?
|
|
|
|
|
Hi All!!
The FolderBrowserDialog shows the New Folder button even when the ShowNewFolderButton property is set to false. The problem is not corrected in Visual Studio 2005 whereas the problem was present in Visual Studio 2003.
I just wanted to ask whether any one has found a work around for the problem faced.
Thank you
ENJOY!!
AyBee
|
|
|
|
|
Im using VS2003, and that property works exactly as I expect Setting the property to false causes the "Make new Folder" button to be hidden.
|
|
|
|
|
|
Is you're Main function marked as STAThread? Sometimes this can cause bizarre behaviour. I came across something almost identical to this (if I remember correctly) and it was solved by adding a STAThread attribute to Main.
Ed
|
|
|
|
|
Hi all!!
I a bit confused on the expiration of a ticket, and a cookie.
I have the following code:
FormsAuthenticationTicket objTicket = new FormsAuthenticationTicket(
1, // version
Context.User.Identity.Name, // username
DateTime.Now, // issue date
DateTime.Now.AddHours(1), // expires every 1 hour
false, // don't persist cookie
strMemberRoles // member roles
);
And...
Response.Cookies["myCookie"].Expires = DateTime.Now.AddMinutes(5);
What happens if the user uses the site for exactly 1 hour and 1 minute. This means that the ticket and cookie has not expired? Does the cookie only expire 5 minutes of being on a page that hasn't been used for 5 minutes?
If the ticket only expires after an hour, what is the use of assigning it so long if the cookie expires after 5 minutes?
Please can someone help me!!
Regards,
ma se
|
|
|
|
|
why we can only access xml file which is created under folder
project/bin/debug only.is there any way by which we can access file which is created in some other folder.
rahul
|
|
|
|
|
You should be able to access xml file or any other file type on any folder, provided you have access to the folder and files. Did you put in the full path (ie c:\mydata\xmlfilename.xml)?
|
|
|
|
|
In Visual Studio 2003, like I can avoid that the user does not change the size of the columns of a datagrid and listview?
Thank you and sorry for my english
|
|
|
|
|
Hi all!!
I have the following global variable in my globals.cs file:
public static readonly string REGEXP_ALPHANUMERIC_WITH_SYMBOLS = "[\\u00E8-\\u00EB\\00FCa-zA-Z\\d\\-',&.@#/ ]";
I use this for my regular expression. I want to add a \ to the string. I tried using \\, but when I use my regular expression it does not work. After creating my regular expression it looks like:
^[\\u00E8-\\u00EB\\00FCa-zA-Z\\d\\-',&.@#/\\ ]$
Please can someone help!!
Regards,
ma se
|
|
|
|
|