|
wad's the difference between:
string a = string.Empty;
string a = null;
|
|
|
|
|
String.Empty is a defined value for a string instance of zero length, it is not null.
string a = null is an uninitialized object of type string, but since it is uninitialized, it is not valid to reference (cant't call any methods on it, or reference it without an exception being raised).
string a = null;
string b = string.Empty;
a.Compare(b); //raises null ref exception
b.Compare(a); //raises null reference exception
string c = "x";
c.Compare(a); // null reference
c.Compare(b); //valid statement
Absolute faith corrupts as absolutely as absolute power
Eric Hoffer
All that is necessary for the triumph of evil is that good men do nothing.
Edmund Burke
|
|
|
|
|
In my eye.
string a = string.Empty; is the same as string a = "";
|
|
|
|
|
They are equal, but neither one is null.
Both of your code samples represent an instantiated object of type string holding a value of zero length. You can call methods and get/set properties on instantiated objects.
A string cal also be null, in which case it doesn't refer to any instantiated object. Therefore, you can't call any methods or modify any properties on it.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Yes and no.
String.Empty is a defined constant contained in the string class.
"" is defining a new string value of zero length in your own class, which is equivalent to srting.empty. The compiler may well just use string.Empty here, or it may intern a new string value in your assembly. It is probably better practice to use the existing string constant (string.Empty) when initializing strings, since it is certain what happens.
Absolute faith corrupts as absolutely as absolute power
Eric Hoffer
All that is necessary for the triumph of evil is that good men do nothing.
Edmund Burke
|
|
|
|
|
In my mind's eye Horatio...
/\ |_ E X E GG
|
|
|
|
|
I think a better question would be..
wad's the difference between:
string a=String.Empty;
string a="";
/\ |_ E X E GG
|
|
|
|
|
The answer: nothing.
String.Empty is defined as "" in System.String's static constructor, and it's a static readonly field.
By the way, .NET 2.0 has a string.IsNullOrEmpty function, which is sorta cool.
|
|
|
|
|
Hot discussion!
I have another topic: what's the difference between "==" and method "Equal". are they same?
It is quite confusing! In jave language, "two object Equal" means the refs pointing to the same memory address. But in C#, I find it is different. You can use if( stringA == "aa" ) instead of if( stringA.Equal("aa" ); Any ideas?
Radic Feng
Beijing, China.
|
|
|
|
|
* Operator equality in C# compares refs pointing while Equals compares values equality.
BUT:
* For strings Operator equality in C# performs value type equality meaning it actually compares the values in the addresses. (Partially it's due the fact that strings are immutable in C# and usually we want actually to compare the values and not the addresses of the instances). In C# Operator equality makes internal call to string.Equals (thus results in slightly poorer performance).
|
|
|
|
|
|
hi
how do i specify criterior using textbox and button in form1 and display results using textbox controls in form2?
thanks! =)
-- modifed at 21:12 Thursday 25th August, 2005
|
|
|
|
|
Hi,
u can do in this way.
string sql = "select * from tabel1 where column1 = '" + txtCol1.Text.Trim() + "'";
Now result is something say a string result.
You create the object of Form2 and assign the value to textbox on it.
Form2 frm = new Form2();
frm.txtResult.Text = result;
frm.Show();
Jayant D. Kulkarni
Brainbench Certified Software Engineer in C#, ASP.NET, .NET Framework and ADO.NET
|
|
|
|
|
hi
sorry, im afraid i don get you.
do you mind having a look here: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbwlkwalkthroughdisplayingdatainwindowsformusingparameterizedquery.asp
i did something like that and it worked. but i do not want the data to be displayed in the same form as the textbox and button.
what should i do to allow user to type and send query in form1 and for data to show in another form (form2)?
please explain as simply as you can because im just a beginner. i appreciate your effort and reply. thank you! =)
|
|
|
|
|
Ok, just tell me what do u get as a result after executing the query?
a dataset, a single value or what?
Jayant D. Kulkarni
Brainbench Certified Software Engineer in C#, ASP.NET, .NET Framework and ADO.NET
|
|
|
|
|
jdkulkarni wrote:
Ok, just tell me what do u get as a result after executing the query?
do you mean what do i want to achieve for my app or what did i get by following the steps in the url?
if u meant what i want to achieve, i want to let user type any ID no. in textbox1 as a criteria for their search (my access db will then get only the data belonging to THAT ID no. only). they'll press GO (button1) which sends query to db. and the data is to be shown in textbox controls placed in a 2nd form, which is a different form from where i placed textbox and button.
if u meant what i got from the steps i followed in that url, i managed to get the specified data that i want from db but the data is displayed in textboxes in the same form as textbox1 and button1.
thanks!
|
|
|
|
|
So,
After pressing the button on form1, a query is fired on databse and u get something in back.
Your code may be looking like this.
private void button_click(object sender, EventArgs arg)
{
string sql = "SELECT * FROM SomeTable WHERE id = '" + txtId.Text + "'";
// Execute the query and you get some data. say u get a string.
// You can just do like this. Add a new form to your project.
// Put a text box control on it and make it public.
Form2 frm = new Form2();
frm.Textbox2.Text = resultStringFromFirstForm;
this.Hide();
frm.Show();
}
Hope this may help.
Jayant D. Kulkarni
Brainbench Certified Software Engineer in C#, ASP.NET, .NET Framework and ADO.NET
|
|
|
|
|
while i try out what u said,
this is what i did when i followed the steps in url.
private void button1_Click(object sender, System.EventArgs e)
{
oleDbDataAdapter1.SelectCommand.Parameters["ContactID"].Value = textBox1.Text;
dataSet21.Clear();
oleDbDataAdapter1.Fill(dataSet21);
}
looks quite different from what u gave me..
i'll try yours out now..
=)
|
|
|
|
|
Ok, here I'm clear now. U do not need to change the code which u r using.
U r getting dataset from database.
Now u can follow steps what i send before.
Form2 frm = new Form2();
frm.txtData.Text = ds.Tables[0].Rows[0][""].ToString();
this.Hide();
frm.Show();
Jayant D. Kulkarni
Brainbench Certified Software Engineer in C#, ASP.NET, .NET Framework and ADO.NET
|
|
|
|
|
hope to solve this problem today.
thanks for your time and effort, friend. =)
unfortunately, the codes didnt work.
i did this in form1>
oleDbDataAdapter1.SelectCommand.Parameters["ContactID"].Value = textBox1.Text;
dataSet11.Clear();
oleDbDataAdapter1.Fill(dataSet11);
dono.Form2 frm = new dono.Form2();
frm.textBox1.Text = dataSet11.Tables[0].Rows[0][""].ToString(); >>i think something's wrong here.. but i donno what is it..
this.Hide();
frm.Show();
just to tell u i used databinding to all my textboxes in form2.
|
|
|
|
|
Hey, u r missing column index or columnname.
dataSet11.Tables[0].Rows[0]["ColumnName"].ToString();
Rest is ok.
If it throws error please let me know the error.
Sorry for missing the column index parameter.
Jayant D. Kulkarni
Brainbench Certified Software Engineer in C#, ASP.NET, .NET Framework and ADO.NET
|
|
|
|
|
sorry,
i guess my information/description of problem is not clear so u are still not 100% clear about what im doing, is that so?
i know u are more expert than me, while im just a beginner. but somehow, i suppose the above solution still will not solve my problem.
would u mind if i send u some sample codes and run my codes to see what im actually doing? i've trouble explaining to u clearly as im not sure of those terms/acronyms.
|
|
|
|
|
i emailed u. not sure if u will be looking at my email. if u are, i've an access db attached to the email. please open table named Patient.
feel free to ask me if you are unsure about anything.
thank you really much!
|
|
|
|
|
Hi, I did not receive the database. But the code looks ok. I'm sending sample code with this answer. I'm simple code snippet.
/*****************FORM1********************************/
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace dono
{
///
/// Summary description for Form1.
///
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Button button1;
private System.Windows.Forms.TextBox textBox1;
private System.Data.OleDb.OleDbDataAdapter oleDbDataAdapter1;
private System.Data.OleDb.OleDbCommand oleDbSelectCommand1;
private System.Data.OleDb.OleDbCommand oleDbInsertCommand1;
private System.Data.OleDb.OleDbCommand oleDbUpdateCommand1;
private System.Data.OleDb.OleDbCommand oleDbDeleteCommand1;
private System.Data.OleDb.OleDbConnection oleDbConnection1;
///
/// Required designer variable.
///
private System.ComponentModel.Container components = null;
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
///
/// Clean up any resources being used.
///
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.textBox1 = new System.Windows.Forms.TextBox();
this.oleDbDataAdapter1 = new System.Data.OleDb.OleDbDataAdapter();
this.oleDbDeleteCommand1 = new System.Data.OleDb.OleDbCommand();
this.oleDbConnection1 = new System.Data.OleDb.OleDbConnection();
this.oleDbInsertCommand1 = new System.Data.OleDb.OleDbCommand();
this.oleDbSelectCommand1 = new System.Data.OleDb.OleDbCommand();
this.oleDbUpdateCommand1 = new System.Data.OleDb.OleDbCommand();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(256, 112);
this.button1.Name = "button1";
this.button1.TabIndex = 0;
this.button1.Text = "button1";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(96, 112);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(160, 20);
this.textBox1.TabIndex = 1;
this.textBox1.Text = "textBox1";
//
// oleDbDataAdapter1
//
this.oleDbDataAdapter1.DeleteCommand = this.oleDbDeleteCommand1;
this.oleDbDataAdapter1.InsertCommand = this.oleDbInsertCommand1;
this.oleDbDataAdapter1.SelectCommand = this.oleDbSelectCommand1;
this.oleDbDataAdapter1.TableMappings.AddRange(new System.Data.Common.DataTableMapping[] {
new System.Data.Common.DataTableMapping("Table", "Patients", new System.Data.Common.DataColumnMapping[] {
new System.Data.Common.DataColumnMapping("ContactID", "ContactID"),
new System.Data.Common.DataColumnMapping("FirstName", "FirstName")})});
this.oleDbDataAdapter1.UpdateCommand = this.oleDbUpdateCommand1;
//
// oleDbDeleteCommand1
//
this.oleDbDeleteCommand1.CommandText = "DELETE FROM Patients WHERE (ContactID = ?) AND (FirstName = ? OR ? IS NULL AND Fi" +
"rstName IS NULL)";
this.oleDbDeleteCommand1.Connection = this.oleDbConnection1;
this.oleDbDeleteCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_ContactID", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "ContactID", System.Data.DataRowVersion.Original, null));
this.oleDbDeleteCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_FirstName", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "FirstName", System.Data.DataRowVersion.Original, null));
this.oleDbDeleteCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_FirstName1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "FirstName", System.Data.DataRowVersion.Original, null));
//
// oleDbConnection1
//
this.oleDbConnection1.ConnectionString = @"Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=0;Data Source=""G:\database.mdb"";Jet OLEDB:Engine Type=5;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=False;persist security info=False;Extended Properties=;Mode=Share Deny None;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;Jet OLEDB:Global Bulk Transactions=1";
//
// oleDbInsertCommand1
//
this.oleDbInsertCommand1.CommandText = "INSERT INTO Patients(ContactID, FirstName) VALUES (?, ?)";
this.oleDbInsertCommand1.Connection = this.oleDbConnection1;
this.oleDbInsertCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("ContactID", System.Data.OleDb.OleDbType.VarWChar, 50, "ContactID"));
this.oleDbInsertCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("FirstName", System.Data.OleDb.OleDbType.VarWChar, 50, "FirstName"));
//
// oleDbSelectCommand1
//
this.oleDbSelectCommand1.CommandText = "SELECT ContactID, FirstName FROM Patients WHERE (ContactID = ?)";
this.oleDbSelectCommand1.Connection = this.oleDbConnection1;
this.oleDbSelectCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("ContactID", System.Data.OleDb.OleDbType.VarWChar, 50, "ContactID"));
//
// oleDbUpdateCommand1
//
this.oleDbUpdateCommand1.CommandText = "UPDATE Patients SET ContactID = ?, FirstName = ? WHERE (ContactID = ?) AND (First" +
"Name = ? OR ? IS NULL AND FirstName IS NULL)";
this.oleDbUpdateCommand1.Connection = this.oleDbConnection1;
this.oleDbUpdateCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("ContactID", System.Data.OleDb.OleDbType.VarWChar, 50, "ContactID"));
this.oleDbUpdateCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("FirstName", System.Data.OleDb.OleDbType.VarWChar, 50, "FirstName"));
this.oleDbUpdateCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_ContactID", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "ContactID", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_FirstName", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "FirstName", System.Data.DataRowVersion.Original, null));
this.oleDbUpdateCommand1.Parameters.Add(new System.Data.OleDb.OleDbParameter("Original_FirstName1", System.Data.OleDb.OleDbType.VarWChar, 50, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "FirstName", System.Data.DataRowVersion.Original, null));
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(544, 230);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
///
/// The main entry point for the application.
///
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void button1_Click(object sender, System.EventArgs e)
{
Form2 frm = new Form2();
frm.textBox1.Text = "I got the value";
this.Hide();
frm.Show();
}
}
}
/*************************************************/
/*****************FORM2********************************/
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
namespace dono
{
///
/// Summary description for Form2.
///
public class Form2 : System.Windows.Forms.Form
{
public System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
///
/// Required designer variable.
///
private System.ComponentModel.Container components = null;
public Form2()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
///
/// Clean up any resources being used.
///
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
this.textBox1 = new System.Windows.Forms.TextBox();
this.textBox2 = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(216, 72);
this.textBox1.Name = "textBox1";
this.textBox1.TabIndex = 0;
this.textBox1.Text = "textBox1";
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(216, 120);
this.textBox2.Name = "textBox2";
this.textBox2.TabIndex = 1;
this.textBox2.Text = "textBox2";
//
// label1
//
this.label1.Location = new System.Drawing.Point(112, 72);
this.label1.Name = "label1";
this.label1.TabIndex = 3;
this.label1.Text = "contactID";
//
// label2
//
this.label2.Location = new System.Drawing.Point(112, 120);
this.label2.Name = "label2";
this.label2.TabIndex = 4;
this.label2.Text = "name";
//
// Form2
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(440, 246);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.textBox1);
this.Name = "Form2";
this.Text = "Form2";
this.ResumeLayout(false);
}
#endregion
}
}
/*************************************************/
It is as simple as the code in button click.
Jayant D. Kulkarni
Brainbench Certified Software Engineer in C#, ASP.NET, .NET Framework and ADO.NET
|
|
|
|
|
hi
im sure glad u replied. sorry for the late reply. just got home.
anyway, i just had a look at the code snippet.
over here i think im not sure:
private void button1_Click(object sender, System.EventArgs e)
{
Form2 frm = new Form2();
frm.textBox1.Text = "I got the value"; << the textBox1 is in my form2 so i get errors something like this --> textbox1 not found in this form (form1) and cant get access to textbox1 in form2.
this.Hide();
frm.Show();
thanks friend once again! =)
|
|
|
|
|