View Full Version : ارسال پارامتر در لايه DAL
mf_007
یک شنبه 23 اسفند 1388, 14:28 عصر
من تازه كار هستم
براي insert كردن در لايه DAL از كد زير استفاده مي كنم
publicvoid inserttodb(string name,string family,int id)
{
using (conn = newSqlConnection(strconn))
{
conn.Open();
SqlCommand cmd = newSqlCommand("stuinsert", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@name", SqlDbType.NChar).Value = name;
cmd.Parameters.Add("@family", SqlDbType.NChar).Value = family;
cmd.Parameters.Add("@id", SqlDbType.Int).Value = id;
cmd.ExecuteNonQuery();
conn.Close();
}
}
ولي اين كد مشكل داره مثلا اگر تعداد فيلدهاي جدول ما 20 تا باشه تابع ما بايد 20 تا ورودي داشته باشه و به نظر من اينجور كدنويسي صحيح نيست
يكي از دوستان گفت كه مي شه از array list استفاده كرد.ميشه در اين مورد توضيح بديد
و كد مورد نظر رو بزاريد
اگه راه بهتري وجود داره لطفا توضيح بديد
M.YasPro
یک شنبه 23 اسفند 1388, 14:50 عصر
سلام
اگه میخوای یه مجموعه ای از ابجکت ها رو از یه جایی به یه جای دیگه بفرستی از جنریک لیست ها استفاده کن .
mf_007
یک شنبه 23 اسفند 1388, 14:59 عصر
سلام
اگه میخوای یه مجموعه ای از ابجکت ها رو از یه جایی به یه جای دیگه بفرستی از جنریک لیست ها استفاده کن .
همونطور كه گفتم من تازه كارم ميشه يكم در اين مورد توضيح بديد؟
M.Fekri
یک شنبه 23 اسفند 1388, 15:04 عصر
یک کلاس در نظر بگیر به اسم Parameter بعد 3تا Property به نامهای Name,Type,Value در نظر بگیر و یک collection(Property) را به عنوان آرگومان بگیر , داخل بدنه function ,loop بزن
mrmr68
یک شنبه 23 اسفند 1388, 15:35 عصر
خوب کد این رو که گفتین مشه بنویسین
خیلی ممنون عزیز
M.YasPro
یک شنبه 23 اسفند 1388, 15:48 عصر
اگر شما یه کلاس داشته باشی به نام person با فیلد های id,name,family با این کد
using System;
using System.Collections.Generic;
using System.Text;
namespace test
{
public class person
{
int id;
string name;
string family;
public string Family
{
get { return family; }
set { family = value; }
}
public string Name
{
get { return name; }
set { name = value; }
}
public int Id
{
get { return id; }
set { id = value; }
}
}
}
شما برای ساختن نمونه از این کلاس باید به صورت زیر عمل کنی :
person p = newperson();
حالا اگه یه لیست از این ابجکت بسازی میتونی اینطور بنویسی :
List<person> Persons = new List<person>();
که اینطوری به هر کدوم از ابجکت های این مجموعه میتونی دسترسی داشته باشی :
Persons[1]
در ضمن لیست ها نسبت به ارایه ها مزیت های بسیاری دارند
http://barnamenevis.org/forum/archive/index.php/t-144694.html
سوالی بود بفرمایید .
موفق باشید.
mf_007
یک شنبه 23 اسفند 1388, 17:19 عصر
من درست متوجه نشدم.
اين كلاس person تو كدوم لايه هست؟لايه dal يا bll?
الان اگه من بخوام سه تا textbox كه در لايه نمايش وجود داره رو مقاديرشون رو در جدول در فيلدهاي name,family, idذخيره كنم كدش چي ميشه؟
M.YasPro
یک شنبه 23 اسفند 1388, 18:29 عصر
این تو لایه common هست .
person p =new person();
p.name=txtName.text;
p.family=txtFamily.text
new personData().Insert(p);
mf_007
یک شنبه 23 اسفند 1388, 19:15 عصر
با تشكر از M.YasPro
یک کلاس در نظر بگیر به اسم Parameter بعد 3تا Property به نامهای Name,Type,Value در نظر بگیر و یک collection(Property) را به عنوان آرگومان بگیر , داخل بدنه function ,loop بزن
ميشه شما هم در مورد روشت يه توضيح بدي و كدش رو بزاري
FastCode
دوشنبه 24 اسفند 1388, 01:13 صبح
تا اونجایی که من میدونم همین روش 10 برابر از روشهای دیگه سریعتره.چون پارامتر ها توی stack ذخیره میشن و box و unbox نمیشن.
mf_007
دوشنبه 24 اسفند 1388, 13:07 عصر
تا اونجایی که من میدونم همین روش 10 برابر از روشهای دیگه سریعتره.چون پارامتر ها توی stack ذخیره میشن و box و unbox نمیشن.
كدوم روش ؟
sg.programmer
دوشنبه 24 اسفند 1388, 14:26 عصر
يه توضيح در باره اين لايه ارائه مي كنيد همراه يا يك مثال كوچيك
FastCode
دوشنبه 24 اسفند 1388, 15:50 عصر
كدوم روش ؟
روشی که توی خود سوال بود.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.