|
As the author states it's a workaround, not a solution. In your code you can't detect when alt-ctrl-delete is clicked.
|
|
|
|
|
|
Hi,
I need to select one file from system folders, when I click on one button. Please let me know. Thanks in advance...
|
|
|
|
|
|
Hi
What type of file do u need to select?
For selectting word documents use the sample code below...
private void btnBrowseDocument_Click(object sender, EventArgs e)
{
openFileDialog2.Title = "Select a File";
openFileDialog2.Filter = "Doc File|*.doc";
openFileDialog2.FileName = "";
if (openFileDialog2.ShowDialog() != DialogResult.Cancel)
{
txtDoc.Text = openFileDialog2.FileName;
}
else
txtDoc.Text = "";
}
Match your code accordingly...
|
|
|
|
|
This solution was given 3 hours before you.
only two letters away from being an asset
|
|
|
|
|
I know that buddy...
So wht are you trying to say..............?
|
|
|
|
|
Hi,
To All
In textbox mouseclick cursor should not be displayed, I made that textbox readonly property true. could you plese help me
Thank You to one and all.
Thanks & Regards,
Nath
|
|
|
|
|
This may help you
[DllImport("user32")] private static extern bool HideCaret(IntPtr hWnd);
public void HideCaret()
{
HideCaret(TextBox1.Handle);
}
|
|
|
|
|
hello,
i have database of students.Now my task is print the biodata of each student on per page.how to i accomplish the task.
i have already make the report and it also show the specific student record.
---------
For example
my report contains only one textbox and it's value is
=First(Fields!FirstName.Value, "DataLayer_StudentProfile")
studentprofile data source have 100 student's records.......but reportviewer display only one student's "FirstName"......i want print these 100 student's "FirstName" on 100 pages..........OK
modified on Wednesday, December 31, 2008 1:02 AM
|
|
|
|
|
I want add several zedgraphcontrol to the pane that having various zgc control in the pane? thanks
|
|
|
|
|
I want add several zedgraphcontrol to the pane that having various zgc control in the pane
|
|
|
|
|
Hai All,
How to use multiline textbox in datagridview(c#,windows application)
and resrtict its length upto 100 characters
|
|
|
|
|
I am missing something small here. I'm writing a simple DB data transfer utility using a custom XML file as the config source (this is the first step, obtaining the DB schema).
Recursion fries my brain
Thanks! to anyone that can spot the IF statement I'm missing.
XML File...
<DbSync>
<Schema>
<SqlConnection Host="10.1.1.1" Database="DBName" Username="username" Password="password" />
<Output Path="C:\DbSync.schema" />
</Schema>
</DbSync>
Code...
internal class Program
{
private const string FILENAME = "Testfile.xml";
private static void Main(string[] args)
{
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(FILENAME);
// This line WORKS and finds the first XML Element node with the name "Schema".
XmlNode configNode = FindNode("Schema", xmlDocument.FirstChild);
// This line WORKS and finds the "SqlConnection" node in the document.
XmlNode connectionNode = FindNode("SqlConnection", configNode);
// This line WORKS and finds "NULL" because the element "Test" doesn't exist.
XmlNode nullNode = FindNode("Test", configNode);
// This line DOESN'T WORK. Element "Output" exists but it is not returning it from the document.
XmlNode outputNode = FindNode("Output", configNode);
#region Display Data
Console.Write(" ConfigNode : " + CheckValue(configNode) + Environment.NewLine);
Console.Write("ConnectionNode : " + CheckValue(connectionNode) + Environment.NewLine);
Console.Write(" NullNode : " + CheckValue(nullNode) + Environment.NewLine);
Console.Write(" OutputNode : " + CheckValue(outputNode) + Environment.NewLine);
Console.Write(Environment.NewLine + "Press Any Key" + Environment.NewLine);
Console.ReadKey(true);
#endregion
}
#region Used for displaying to console.
private static string CheckValue(object obj)
{
return obj == null ? "*** NULL ***" : "CONTAINS VALUE";
}
#endregion
// TODO: FIGURE OUT WHY I DON'T WORK IF I AM SEARCHING FOR THE 2nd, 3rd, etc... CHILDNODE. Seems to only work with the first childnode.
private static XmlNode FindNode(string nodename, XmlNode node)
{
if (node.Name == nodename)
{
return node;
}
else
{
foreach (XmlNode childNode in node.ChildNodes)
{
// Uses recursion to transverse the nodes in the Xml doc.
// I think the error is here. It is always returning the first
// child element even if there is more than 1 child element.
// I just can't figure out how to get around that (To check ALL child nodes).
// I think I need some type of if-then here but can't put my finger on it...
return FindNode(nodename, childNode);
}
}
return null;
}
}
|
|
|
|
|
I am using recursion instead of an XPath query because I wanted the configuration section nodes "<Schema> in this case" to be able to be placed in any XML file (At any location).
Or if anyone has an XML Element searcher function laying around. That works too.
|
|
|
|
|
LnocaSteve wrote: to be placed in any XML file (At any location).
You're just making it more difficult than it should be then. Look at the schema for web/app config files, they use a set schema to prevent this type of mess. What is your reasoning for the requirement.
only two letters away from being an asset
|
|
|
|
|
The program has multiple executables/services executing in different locations. I was trying to come up with a simplistic way for the application users (our sister locations) to use single XML config files for connections, and others for application settings. So if a site wanted to encrypt their connection info and/or program settings using their own encryption methodologies, it would give them the freedom to (vs say using an encrypted connection string in an App.config file).
This would also let users choose to use a single file for all of the services/executables or use individual connection information files stored separately.
Trying to avoid the redundancy in creating multiple separate config files, and instead use modular XML elements to store this information anywhere the admin chooses (by piping them via webservices, filesystem, database decrypt, etc.)
Does that help? Am I tying to implement these things in a terrible way?
|
|
|
|
|
The concept is fine, I don't see a need for having your nodes in any place in the file. Having a defined schema will certainly make the configuration more maintainable. Again, look at web/app config files as an example.
You can always search for a node using XPath using the syntax "//[node name]", however, if this is a new app and using .NET 3.5 I'd use XElment or XDocument and Linq to XML.
only two letters away from being an asset
|
|
|
|
|
You are correct in using XPath. After seeing your and Christian Graus's comments, a simple XPath query expression definitely seems the way to go.
Thanks a ton for pointing me in the right direction (and not using my own crock pot coding to implement something that is already implemented.)
Thanks again!
|
|
|
|
|
private static XmlNode FindNode(string nodename, XmlNode node)
{
if (node.Name == nodename)
return node;
if (node.HasChildNodes)
foreach (XmlNode childNode in node.ChildNodes)
{
XmlNode returnNode = FindNode(nodename, childNode);
if (returnNode != null) return returnNode;
}
return null;
}
|
|
|
|
|
LnocaSteve wrote: I am using recursion instead of an XPath query because I wanted the configuration section nodes "<schema> in this case" to be able to be placed in any XML file
That is insane. The Xpath //myNode/myChild will find those two nodes anywhere in the file. Use that syntax.
Christian Graus
Driven to the arms of OSX by Vista.
|
|
|
|
|
AWSOME! You are absolutely correct. My recursion method is just stupid compared to the power of XPath! /bow
XPathDocument doc = new XPathDocument(filename);
XPathNavigator nav = doc.CreateNavigator();
XPathExpression expr = nav.Compile("//Schema/SqlConnection");
XPathNodeIterator iterator = nav.Select(expr);
XPathNavigator sqlConnection;
while (iterator.MoveNext())
sqlConnection = iterator.Current.Clone();
(just a quick crude code example, I'll refine and post the full solution shortly)
I never used XPath queries in the past. I didn't know they were so powerful. Recursion is always such a resource hog.
I haven't started researching yet, but do you know of any significant drawbacks of using XPath queries, off the top of your head?
Again, Thanks!
|
|
|
|
|
This is a much easier way using XPath expression queries.
internal class Program
{
private const string FILENAME = "Testfile.xml";
private static readonly string[] SectionNames = new[] { "Schema" };
private static readonly string[] ConfigItems = new[] { "SqlConnection", "Output" };
private static void OutputNavigatorData(XPathNavigator navigator)
{
Console.WriteLine(navigator.Name);
if (navigator.MoveToFirstAttribute())
{
Console.WriteLine(" - " + navigator.Name + " : " + navigator.Value);
while (navigator.MoveToNextAttribute())
{
Console.WriteLine(" - " + navigator.Name + " : " + navigator.Value);
}
}
}
private static void Main(string[] args)
{
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(FILENAME);
XPathDocument doc = new XPathDocument(FILENAME);
XPathNavigator nav = doc.CreateNavigator();
foreach (var sSectionName in SectionNames)
{
foreach (var sConfigItem in ConfigItems)
{
XPathExpression expression = nav.Compile("//" + sSectionName + "/" + sConfigItem);
XPathNodeIterator iterator = nav.Select(expression);
while (iterator.MoveNext())
{
OutputNavigatorData(iterator.Current);
}
}
}
}
}
|
|
|
|
|
Hello i have altered my method of displaying my data since my last post and instead of a listview i am now using a datagrid as i thought it would be easier to use for what i want.
I now am stuck in terms of i do not have a clue how i am going to display the rest of the data from my table?
What i need to have is when the user clicks on a row of data e.g. 'client' all records are show in the tabbed page area?
(the picture will help to explain bettter)
Picture :
I have used a dataset to show the data when client is clicked but i dont think i can use that same dataset as it only retrieves four recods.
How can i have the four records displayed on one side of the page and then when highlighted display all infomation about the client in the seperat tabbed area?
My Code so far which displays client (when clicked) and contractor (when clicked)
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 MySql.Data.MySqlClient;
namespace Deroche_Consultants
{
public partial class main_screen : Form
{
string dataCategory = null;
DataSet myDataSet;
public main_screen()
{
InitializeComponent();
}
private void client_pic_Click(object sender, EventArgs e)
{
ClientDataLoad();
}
private void client_label_Click(object sender, EventArgs e)
{
ClientDataLoad();
}
private void client_buttonBox_Click(object sender, EventArgs e)
{
ClientDataLoad();
}
private void ClientDataLoad()
{
string connectionString = "Data Source=localhost" + "; Database=_consultants" + "; User ID=root" + "; Password=password;";
MySqlConnection MySqlConn = new MySqlConnection(connectionString);
string strSQL = ("SELECT company_id, company_name, contact_fname, contact_sname, employee_count FROM client");
MySqlCommand mysqlCommand = new MySqlCommand(strSQL, MySqlConn);
MySqlDataAdapter myDataAdapter = new MySqlDataAdapter(mysqlCommand);
try
{
MySqlConn.Open();
DataSet myDataSet = new DataSet();
myDataSet.Clear();
myDataAdapter.Fill(myDataSet, "client");
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = myDataSet.Tables[0];
MySqlConn.Close();
}
catch (Exception ex)
{
MessageBox.Show("Data Load Error "+ex.Message.ToString(),
"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
MySqlConn.Close();
}
}
private void job_pic_Click(object sender, EventArgs e)
{
}
private void job_label_Click(object sender, EventArgs e)
{
}
private void job_boxButtons_Click(object sender, EventArgs e)
{
}
private void contractor_pic_Click(object sender, EventArgs e)
{
ContractorDataLoad();
}
private void contractor_label_Click(object sender, EventArgs e)
{
ContractorDataLoad();
}
private void contractor_boxButton_Click(object sender, EventArgs e)
{
ContractorDataLoad();
}
private void ContractorDataLoad()
{
string connectionString = "Data Source=localhost" + "; Database=_consultants" + "; User ID=root" + "; Password=password;";
MySqlConnection MySqlConn = new MySqlConnection(connectionString);
string strSQL = ("SELECT contractor_id, forename, surname, availability, daily_cost FROM contractor");
MySqlCommand mysqlCommand = new MySqlCommand(strSQL, MySqlConn);
MySqlDataAdapter myDataAdapter = new MySqlDataAdapter(mysqlCommand);
try
{
MySqlConn.Open();
DataSet myDataSet = new DataSet();
myDataSet.Clear();
myDataAdapter.Fill(myDataSet, "contractor");
myDataAdapter.Fill(myDataSet);
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = myDataSet.Tables[0];
MySqlConn.Close();
}
catch (Exception ex)
{
MessageBox.Show("Data Load Error "+ex.Message.ToString(),
"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
MySqlConn.Close();
}
}
private void button1_Click(object sender, EventArgs e)
{
Form2 addclient = new Form2();
addclient.Show();
}
private void button3_Click(object sender, EventArgs e)
{
}
}
}
Thanks in advance,
C~Rose
modified on Wednesday, December 31, 2008 4:36 AM
|
|
|
|
|