mostafa_shoakry
پنج شنبه 25 شهریور 1389, 20:26 عصر
سلام
اینا چن تا کدن که می خوام بدونم کدوم یکی صحیح هستند و کدام یک غلط؟
یا اینکه اگه نیاز به تغییر باشه تغییرش بدیم:
خوب این از اولی:
کد اضافه کردن به دیتا بیس بدون SP :
using (SqlConnection con = new SqlConnection(Properties.Settings.Default.SQLDatab ase))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Insert Into Table1(Name, Fname) Values (@Name, @Fname)";
cmd.Parameters.AddWithValue("@Name", textBox1.Text);
cmd.Parameters.AddWithValue("@Fname", textBox2.Text);
con.Open();
cmd.ExecuteNonQuery();
}
دومی اضافه کردن به دیتا بیس با SP:
sqlcon=new SqlConnection(DB Path);
SqlCommand cmd=new SqlCommand();
cmd.Connection=sqlcon;
cmd.CommandType=CommandType.StoredProcedure;
cmd.CommandText=”ProcedureName”;
cmd.Parameters.AddWithValue(“@Field1”,value1);
cmd.Parameters.AddWithValue(“@Field2”,value2);
cmd.Parameters.AddWithValue(“@Fieldn”,valuen);
sqlcon.Open();
cmd.ExecuteNonQuery();
sqlcon.Close();
آپدیت کردن دیتا بیس بدون SP:
using (SqlConnection con = new SqlConnection(Properties.Settings.Default.SQLDatab ase))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Update Table1 SET Name=@Name,Fname=@Fname Where ID=" + comboBox2.SelectedValue.ToString() + "";
cmd.Parameters.AddWithValue("@Name", textBox3.Text);
cmd.Parameters.AddWithValue("@Fname", textBox4.Text);
con.Open();
cmd.ExecuteNonQuery();
}
آپدیت کردن دیتا بیس با SP:
کدشو گم کردم. ولی فک کنم مانند اد هست با کمی تغییر.در این نمونه بیشتر مد نظرم اینه که آیا از
DataTable.Fill()استفاده کنیم یا از
DataTable.Load()یعنی کدام یک بهتر است؟
کد کامل:
using (SqlConnection con = new SqlConnection(Properties.Settings.Default.SQLDatab ase))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select * from Table1";
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(dr);
foreach (DataRow row in dt.Rows)
{
dataGridView1.Rows.Add(row["ID"].ToString(),row["Name"].ToString(),row["Fname"].ToString());
}
}
استفاده از SP خروجی دار!!!! :
شکل کلی در SQL Server:
Create Proc ProcName
@Var1 DataType,
@ Var2 DataType,
. ,
. ,
. ,
@ Varn DataType
@ OutputVar dataType[=مقدار اوليه] OutPut //در صورت نياز مي تواند مقدار اوليه داشته باشد.
As
Insert Into TableName(Filed1, Filed2, … , Filedn) values (@Var1, @Var2,.., @Varn)
Set @OutputVar = Scope_Identity()
فرا خوانی آن در C#.NET
SqlCommand cmd = new sqlCommand();
cmd.Connection= Sqlcon;
cmd.CommandType=CommandType.StoredProcedure;
cms.CommandText=”ProcedureName”;
cmd.Parameters.AddWithValue(“@Field1”,value1);
cmd.Parameters.AddWithValue(“@Field2”,value2);
.
.
.
cmd.Parameters.AddWithValue(“@Fieldn”,valuen);
cmd.Parameters.Add(“@OutputVar”,SqlType..,Leng th);
cmd.Parameters[“@OutputVar”].Direction.ParametersDirection.Output;
sqlcon.Open();
cmd.ExecuteNonQuery();
string strString=cmd.Parameters[“@OutputVar”].Value.ToString();
sqlcon.Close();
بعضی از کدها رو قبلا داشتم دیگه ویرایش نکردم و همونجوری در اینجا قرار دادم.
بماند که در بعضی ها از بلوک using استفاده نشده (به دلیل اینکه در خط قبلی ذکر کردم!!!!)
سوال دیگه ای بود در خدمتم. :لبخند:
از اساتید محترم خواهشمندم منو راهنمایی کنن.:قلب:
اینا چن تا کدن که می خوام بدونم کدوم یکی صحیح هستند و کدام یک غلط؟
یا اینکه اگه نیاز به تغییر باشه تغییرش بدیم:
خوب این از اولی:
کد اضافه کردن به دیتا بیس بدون SP :
using (SqlConnection con = new SqlConnection(Properties.Settings.Default.SQLDatab ase))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Insert Into Table1(Name, Fname) Values (@Name, @Fname)";
cmd.Parameters.AddWithValue("@Name", textBox1.Text);
cmd.Parameters.AddWithValue("@Fname", textBox2.Text);
con.Open();
cmd.ExecuteNonQuery();
}
دومی اضافه کردن به دیتا بیس با SP:
sqlcon=new SqlConnection(DB Path);
SqlCommand cmd=new SqlCommand();
cmd.Connection=sqlcon;
cmd.CommandType=CommandType.StoredProcedure;
cmd.CommandText=”ProcedureName”;
cmd.Parameters.AddWithValue(“@Field1”,value1);
cmd.Parameters.AddWithValue(“@Field2”,value2);
cmd.Parameters.AddWithValue(“@Fieldn”,valuen);
sqlcon.Open();
cmd.ExecuteNonQuery();
sqlcon.Close();
آپدیت کردن دیتا بیس بدون SP:
using (SqlConnection con = new SqlConnection(Properties.Settings.Default.SQLDatab ase))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Update Table1 SET Name=@Name,Fname=@Fname Where ID=" + comboBox2.SelectedValue.ToString() + "";
cmd.Parameters.AddWithValue("@Name", textBox3.Text);
cmd.Parameters.AddWithValue("@Fname", textBox4.Text);
con.Open();
cmd.ExecuteNonQuery();
}
آپدیت کردن دیتا بیس با SP:
کدشو گم کردم. ولی فک کنم مانند اد هست با کمی تغییر.در این نمونه بیشتر مد نظرم اینه که آیا از
DataTable.Fill()استفاده کنیم یا از
DataTable.Load()یعنی کدام یک بهتر است؟
کد کامل:
using (SqlConnection con = new SqlConnection(Properties.Settings.Default.SQLDatab ase))
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select * from Table1";
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(dr);
foreach (DataRow row in dt.Rows)
{
dataGridView1.Rows.Add(row["ID"].ToString(),row["Name"].ToString(),row["Fname"].ToString());
}
}
استفاده از SP خروجی دار!!!! :
شکل کلی در SQL Server:
Create Proc ProcName
@Var1 DataType,
@ Var2 DataType,
. ,
. ,
. ,
@ Varn DataType
@ OutputVar dataType[=مقدار اوليه] OutPut //در صورت نياز مي تواند مقدار اوليه داشته باشد.
As
Insert Into TableName(Filed1, Filed2, … , Filedn) values (@Var1, @Var2,.., @Varn)
Set @OutputVar = Scope_Identity()
فرا خوانی آن در C#.NET
SqlCommand cmd = new sqlCommand();
cmd.Connection= Sqlcon;
cmd.CommandType=CommandType.StoredProcedure;
cms.CommandText=”ProcedureName”;
cmd.Parameters.AddWithValue(“@Field1”,value1);
cmd.Parameters.AddWithValue(“@Field2”,value2);
.
.
.
cmd.Parameters.AddWithValue(“@Fieldn”,valuen);
cmd.Parameters.Add(“@OutputVar”,SqlType..,Leng th);
cmd.Parameters[“@OutputVar”].Direction.ParametersDirection.Output;
sqlcon.Open();
cmd.ExecuteNonQuery();
string strString=cmd.Parameters[“@OutputVar”].Value.ToString();
sqlcon.Close();
بعضی از کدها رو قبلا داشتم دیگه ویرایش نکردم و همونجوری در اینجا قرار دادم.
بماند که در بعضی ها از بلوک using استفاده نشده (به دلیل اینکه در خط قبلی ذکر کردم!!!!)
سوال دیگه ای بود در خدمتم. :لبخند:
از اساتید محترم خواهشمندم منو راهنمایی کنن.:قلب: