|
Ah, my apologies. You'll need this[^] syntax, and the InvariantCulture .
Bastard Programmer from Hell
|
|
|
|
|
Thanks for your reply.
I'll give that a go.
I am creating the DateTime column data from a csv file. I wonder if it is the way the csv date is formatted. it is yyyy/dd/mm.
|
|
|
|
|
two more remarks:
1. Convert.ToDateTime(dateTimePicker1.Text) is ugly and unnecessary, a DateTimePicker has a value property which gives a DateTime, there is no need to parse or convert a string here.
2. .ToShortDateString() obviously is culture dependent and therefore inappropriate in a conversation with a database which is likely to expect a culture independent format, as it possibly has to serve people and applications with diverse cultures. You could use the invariant culture, or use ToString(...) with an explicit format, say ToString("yyyy-MM-dd").
|
|
|
|
|
Thanks all for your help,
Filter working Ok now with filter:
string filter = " (Date >= #" + dateTimePicker1.Value.ToString("yyyy-MM-dd") + "# And Date <= #" + dateTimePicker2.Value.ToString("yyyy-MM-dd") + "# ) ";
A error in the sample csv file I create the date from was also causing a problem.
|
|
|
|
|
Hello.
Using Microsoft Visual Studio 2008, I try to make a graphic tool. like a photoshop.
Most of the problems were solved by using the user control.
But Several problems related to font occurred.
First, Font size!!! Separate width and height size can not be changed.
Second, Kerning!!!
I've tried hard to solve problem.
I know that my question is widely and abstract.
But my work is faced stagnant. And I do not know what to do
Please help me who know information or advice to solve problems.
Wish your help
|
|
|
|
|
Assuming this is WinForms, not WPF, you can apply a matrix transform to the graphics context, which will stretch everything in one direction:
Font font = new Font("Verdana", 12.0F);
private void myPanel_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawString("Hello", font, Brushes.Black, 10, 10);
Matrix m = new Matrix();
m.Scale(2, 1);
g.Transform = m;
g.DrawString("Hello", font, Brushes.Black, 10, 30);
g.ResetTransform();
m = new Matrix();
m.Scale(1.5F, 1);
g.Transform = m;
g.DrawString("Hello", font, Brushes.Black, 10, 60);
g.ResetTransform();
}
I suspect that WPF could do this pretty easily (but there is a learning curve associated with WPF).
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
|
|
|
|
|
As mentioned before,I want to make graphic tool.
Therefore, many objects will be drawn.
some objects can cover letter's part.
example, "N" looks like "V","W" looks like "N" etc..
many problems can occur.
So I need a another method. but thanks for your comment
|
|
|
|
|
You will have to draw each letter individually. I'm not sure you can add text to a path with the .Net drawing tools, so for some of the cleverer stuff (using text as a clipping path, for example) you'd have to read the font file yourself and draw the curves.
|
|
|
|
|
An interesting article (to go along with BobJanova's comment) can be found here[^]. While it's in VB.NET, someone has provided a C# alternative in the messages.
|
|
|
|
|
Hello,
I was reading through the active directory tutorial "almost everything in active directory" but I'm not able to figure out (from it) how to query active directory for values. I'd like to query all domains based on certain attributes, log in name, last name and email address.
From that key value, I'd then like to return an array of all AD objects associated to that account.
Can anyone help me with this? I can post my code, but it doesn't work at all so it probably wouldn't be of much help. Thanks for reading.
|
|
|
|
|
What do you mean by "all AD objects associated to that account"?
|
|
|
|
|
Hi Dave,
I'd like to enter a unique identifier and get all of the account related objects for that account.
After I receive all, I can then parse through and display the ones I want in my gui. An example would be first name, last name, phone, email, any status codes/custom attributes, etc.
|
|
|
|
|
There's a problem with what you want to do.
turbosupramk3 wrote: a unique identifier
Such as??? Are you looking for everything about a User object, or are you looking for everything related to ANY kind of object in AD??
turbosupramk3 wrote: get all of the account related objects for that account.
Such as what "related objects"?? What kind of objects are you talking about?? Give an example.
turbosupramk3 wrote: An example would be first name, last name, phone, email, any status codes/custom
attributes, etc.
Those are not objects, they are Properties of a User object. Maybe you're confusing terms here?
|
|
|
|
|
I may be using the wrong terminology, if so I am sorry.
I've always called them object attributes, but I noticed in my googling that .net calls them properties which is inline with what you have said.
I would like to return all properties associated with a user object. I'll provide the GUI with a user id, last name or email, which I believe are properties named "samaccountname", "sn" and "mail", and with any of those being the unique identifier, query AD and return all other properties associated to that account into a parsable format.
|
|
|
|
|
using (var rootDirectory = new DirectoryEntry("LDAP://[Server IP or Host name]", "[user name in the directory]", "[User Password]")) {
using (var directorySearch = new DirectorySearcher(rootDirectory)) {
directorySearch.Filter = string.Format("(|(sAMAccountName={0})(name={0}))", "[User Name you want or account you want]");
directorySearch.PropertiesToLoad.Add("[Name of the property you want, exactly as it appears in the AD]");
var result = directorySearch.FindOne();
if (result != null) {
var directoryEntry = result.GetDirectoryEntry();
var propertyIwant = directoryEntry.Properties["Name of the property you want"];
}
}
}
this should get you started, if you want more then the first item associated with your query, use "FindAll" and then iterate on the results
Edit: totally forgot, remember you need to reference System.DirectoryServices to use this code.
|
|
|
|
|
Thank you randprin.
I'm trying to do directorySearch.FindAll(); and I can't seem to get results?
I thought I'd be able to get a count and use a for statement, but when I'm debugging I cannot seem to display any values while paused over directorySearch.FindAll() and hovering over it with the mouse? Do you have any ideas?
Under FindOne(), I'll see 77 properties, but I'm coming up empty with the FindAll() .
modified 24-May-12 15:57pm.
|
|
|
|
|
Here is what I ended up using in case this comes up in a search (you'll have to change the txtbox stuff to fit your gui or console app
using (var rootDirectory = new DirectoryEntry("LDAP://" + domain))
{
using (var directorySearch = new DirectorySearcher(rootDirectory))
{
if (tBoxPin.Text != "")
{
directorySearch.Filter = string.Format("(|(sAMAccountName={0}))", tBoxPin.Text);
}
if (tBoxLastName.Text != "")
{
directorySearch.Filter = string.Format("((sn={0}))", tBoxLastName.Text);
}
if (tBoxEmail.Text != "")
{
directorySearch.Filter = string.Format("((mail={0}))", tBoxEmail.Text);
}
var result = directorySearch.FindOne();
if (tBoxLastName.Text != "")
{
SearchResultCollection searchResults = directorySearch.FindAll();
foreach (SearchResult searchResult in searchResults)
{
foreach (string propertyKey in searchResult.Properties.PropertyNames)
{
ResultPropertyValueCollection valueCollection = searchResult.Properties[propertyKey];
ResultPropertyValueCollection accountCollection = searchResult.Properties["userprincipalname"];
foreach (Object propertyValue in valueCollection)
{
if (propertyKey == "name")
{
lastNames.Add(propertyValue.ToString());
if (tBoxLastName.Text != "")
{
tBoxDomains.Text += (propertyValue.ToString()) + " - ";
foreach (Object account in accountCollection)
{
tBoxDomains.Text += account.ToString() + System.Environment.NewLine;
}
}
}
}
}
}
}
if (lastNames.Count > 1)
{
return;
}
if (result != null)
{
DirectoryEntry myDirectoryEntry = result.GetDirectoryEntry();
ResultPropertyCollection myResultPropColl;
myResultPropColl = result.Properties;
foreach (string myKey in myResultPropColl.PropertyNames)
{
if ((myKey == "samaccountname"))
{
foreach (Object myCollection in myResultPropColl[myKey])
{
tBoxPin.Text = (myCollection.ToString());
}
}
if ((myKey == "name"))
{
foreach (Object myCollection in myResultPropColl[myKey])
{
tBoxLastName.Text = (myCollection.ToString());
}
}
if ((myKey == "mail"))
{
foreach (Object myCollection in myResultPropColl[myKey])
{
tBoxEmail.Text = (myCollection.ToString());
}
}
if ((myKey == "name"))
{
foreach (Object myCollection in myResultPropColl[myKey])
{
tBoxTopSecret.Text = (myCollection.ToString().ToUpper());
}
}
if ((myKey == "homemdb"))
{
foreach (Object myCollection in myResultPropColl[myKey])
{
int delimiter = myCollection.ToString().IndexOf(",");
string trimmed = myCollection.ToString();
trimmed = trimmed.Remove(delimiter);
trimmed = trimmed.Replace("CN=", "");
tBoxExchangeServer.Text = (trimmed);
}
}
if ((myKey == "telephonenumber"))
{
foreach (Object myCollection in myResultPropColl[myKey])
{
tBoxPhone.Text = (myCollection.ToString());
}
}
}
}
}
}
|
|
|
|
|
Hi folks,
I desparatly and urgently need your help... I need a code sample or some guidance on how to write a .Net program (preferably in C#) that used ADWS (Microsoft Active Directory Web Services) to retrieve user's information, search for users that have some active directory field set to some text, etc.
T.I.A,
Yuval.
|
|
|
|
|
|
Hi,
I've read that article too. However, it demonstrates how to use LDAP calls to access the Active Directory, a method that works fine, but slowly...
I'm interested in MS-ADWS (http://technet.microsoft.com/en-us/library/dd391908(v=ws.10).aspx[^]). I've managed already to get only some of the user's attributes (such as display name, distinguished name and few others) but I need help in implementing C# code that uses these WCF services to get more user related information as well as mechanisms for searching the AD according to a given filter.
Thanks,
Yuval.
|
|
|
|
|
Im posting this to see what people come up with in this project. I dont need help with this but am in the process of trying to figure out system.io. Ive started the project off which is a windows form with a Get Folders and Files button which then opens a FolderBrowserDialog to let you pick the directory you want to list on the listbox with its subdirectories and files.
1) How can we rename a certain directory listed in the listbox
2) How do we remove unwanted directories
3) How do we check for duplicate files or directories, and remove one)
4) How do we remove unwanted characters in directory or file names.
Feel free to add other points that we could do with this project.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace MusicProject
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnGetFolders_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
FolderBrowserDialog fbd = new FolderBrowserDialog();
if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
foreach (string dir in Directory.GetDirectories(fbd.SelectedPath))
{
DirectoryInfo dInfo = new DirectoryInfo(dir);
this.listBox1.Items.Add(dInfo.Name);
}
foreach (string file in Directory.GetFiles(fbd.SelectedPath))
{
FileInfo fInfo = new FileInfo(file);
this.listBox1.Items.Add (fInfo.Name);
}
}
}
}
}
|
|
|
|
|
1)
System.IO.Directory.Move(@"C:\olddir", @"C:\newdir");
2)
System.IO.Directory.Delete(@"C:\olddir",false);
3) ??
4)
var cleanDir = (@"C:\olddir").Replace('unwantedChar',"");
System.IO.Directory.Move(@"C:\olddir",cleanDir);
|
|
|
|
|
bdeklerk wrote: Feel free to add other points that we could do with this project.
A forum-post would not be the correct place for a longer-term project. Turn it into an article, and people could collaborate.
You already have answers to the other questions, which leaves #3 for me;
bdeklerk wrote: 3) How do we check for duplicate files or directories, and remove one)
You can iterate over all files and folders, and for each item; calculate a hash (like md5) and put it in a dictionary, with the hash as the key and the path as the value. If you hit a double key, you'll know that the content of both files is the same - even if the filenames and/or timestamps on the files differ.
Good luck
Bastard Programmer from Hell
|
|
|
|
|
i created application in WPF/C#.net in window xp, but when i try to run it win 7 every time i get exception on opening crystal report form in my application, even i installed following on win 7
http://downloads.businessobjects.com/akdlm/crystalviewer/CRViewer.exe
http://downloads.businessobjects.com/akdlm/cr4vs2010/CRforVS_13_0.exe
http://downloads.businessobjects.com/akdlm/cr4vs2010/CRforVS_redist_install_64bit_13_0_3.zip
modified 23-May-12 1:48am.
|
|
|
|
|
That looks like the common 32bit-64bit problem: a 32bit application cannot load a 64bit dll, and a 64bit application cannot load a 32bit dll.
Set the target of your application to x86 (i.e. 32bit), and install the 32bit version of crystal reports also on 64bit OS.
If that does not solve the problem, provide necessary details like the error message and the code lines where the exception happens.
|
|
|
|