PDA

View Full Version : سوال: پر کردن SqlDataSource با کدنویسی در C# به جای ویزارد



rana-writes
دوشنبه 04 بهمن 1389, 13:35 عصر
چطوری میشه به جای اینکه یه SqlDataSource رو به طور ویزاردی به استورپروسیجرها نسبت بدیم یا پارامترها رو براش تعریف کنیم، توی کد نویسی اینکار رو انجام بدم؟
من نسبت دادن کانکشن استرینگ و استور رو درآوردم
مثل این:


SqlDsAllPostSocial.ConnectionString = ConfigurationManager.ConnectionStrings["MYConnectionString"].ConnectionString;
SqlDsAllPostSocial.SelectCommand = "HASoc_ShowAllPost";
SqlDsAllPostSocial.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;

فقط برای کار با پارامترها مشکل دارم
مثلا یه SQlDs مثل این رو چطوری میشه با کد توی سی شارپ، پر کرد؟


<asp:SqlDataSource ID="SqlDSShwAllPstType" runat="server"
ConnectionString="<%$ ConnectionStrings:MYConnectionString %>"
SelectCommand="HASoc_ShwAllPostType" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:ControlParameter ControlID="LblUser" Name="UserName" PropertyName="Text"
Type="String" />
<asp:ControlParameter ControlID="DropType" Name="PostType"
PropertyName="SelectedValue" Type="String" />
</SelectParameters>
</asp:SqlDataSource>



ممنون از راهنماییتون

ferankyy
دوشنبه 04 بهمن 1389, 15:23 عصر
اگر منظورتون درست فهمیده باشم :



SqlDatasource.ConnectionString="Server=(local);uid=ID;pwd=Password;Database=Databa sename";
SqlDatasource.SelectCommand="Select * From tablename";
Sqldatasourcr.databind();

rana-writes
دوشنبه 04 بهمن 1389, 18:43 عصر
اگر منظورتون درست فهمیده باشم :



SqlDatasource.ConnectionString="Server=(local);uid=ID;pwd=Password;Database=Databa sename";
SqlDatasource.SelectCommand="Select * From tablename";
Sqldatasourcr.databind();


سلام
بله من منظورم همینه
اما مشکلم با استورپروسیجری هست که پارامتر داره
تو حالت ویزاردی که میشه خیلی راحت پارامترها رو از روی سشن یا کویری استرینگ خوند
اما اینجا چطوری با کدنویسی پارامتر نسبت بدم؟

b.paseban
دوشنبه 04 بهمن 1389, 19:11 عصر
سلام دوست عزیز.
توی دیتاسورس اول پارامتر هارو تعریف کن




<InsertParameters>
<asp:Parameter Name="Body" Type="String" />
</InsertParameters>
بعد توی codebehind



SqlDataSourcename.InsertParameters["Body"].DefaultValue = "paramvalue";
SqlDataSource_Article.Insert();

alonemm
دوشنبه 04 بهمن 1389, 20:19 عصر
با سلام:
(البته فكر كنم جواب ها رو دوستان دادن اما در راستاي خواستن نظر من) :
شما ميتونيد از قسمت selectcommand هم رشته تقاضا رو بفرستيد در قسمت كد نويسي و هم پارامتر ها رو هم با @name مشخص كنيد و به صورتي كه بالا گفته شد مقدار پارامتر مربوطه رو بديد.


موفق باشيد.

baran_mehr
سه شنبه 05 بهمن 1389, 00:17 صبح
طریقه نمایش اطلاعات یک جدول با sp
فرض داشتن استورپروسیجر به صورت زیر:

create procedure [recordall]
(@s varchar output)
as
select * database.table
go
کد در vb.net(ابتدا متغییر های مورد نیاز را تعریف نمایید datatable , dataadapter ,connectionstring


da.selectcommand=new sqlcommand("declare @s varchar exec recordall @s output",connectionstring)
da.fill(dt)
datagrid1.datasource=dt
موفق باشید

reuonis
چهارشنبه 06 بهمن 1389, 15:07 عصر
سلام
من می خواستم پارامتر خروجی رو به یک فیلد نسبت بدم توی حالت ویزاردی نمی شد. راه دیگه ای هست که من بتونم پارامتر خروجی رو به فیلدی نسبت بدم؟
با تشکر

rana-writes
چهارشنبه 06 بهمن 1389, 15:19 عصر
سلام
من می خواستم پارامتر خروجی رو به یک فیلد نسبت بدم توی حالت ویزاردی نمی شد. راه دیگه ای هست که من بتونم پارامتر خروجی رو به فیلدی نسبت بدم؟
با تشکر
شما برای این کار یه کدی مثل این میخواین که اطلاعاتتون رو فراخوانی کنه


public static SqlDataReader ShowPostFrEdit_Soc(int PostId)
{
SqlConnection connection = ConnectionManager.ConnectToHalghehMagDB();
SqlCommand command = newSqlCommand("HASoc_ShwPstFEdit", connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("@PostId", SqlDbType.Int).Value = PostId;
SqlDataReader reader = command.ExecuteReader(CommandBehavior.SingleResult | CommandBehavior.CloseConnection);
return reader;
}



بعد هم توی کد برنامه، اینطوری خروجی بگیرین


using (SqlDataReader reader = SocialDataAccess.ShowPostFrEdit_Soc(PostId))
{
if (reader.Read())
{
TxtTitle.Text = Convert.ToString(reader["Title"]);
TxtSummary.Text = Convert.ToString(reader["Summery"]);
TxtContent.Text = Convert.ToString(reader["Content"]);
DropCat.SelectedIndex = Convert.ToInt32(reader["CatId"]);
DropType.SelectedIndex = Convert.ToInt32(reader["TypeId"]);
TxtDay.Text = Convert.ToString(reader["PostDay"]);
TxtMonth.Text = Convert.ToString(reader["PostMonth"]);
TxtYear.Text = Convert.ToString(reader["PostYear"]);
ImageLogo.ImageUrl = Convert.ToString(reader["LogoAdd"]);
LblLogoName.Text = Convert.ToString(reader["LogoName"]);

}
}

اینجا من خروجیهام رو توی تکست باکس ریختم مثلا
این ویزارد کلا اطلاعات شما رو نمایش میده، خروجی رو جای خاصی نمیریزه
حالا میتونین با استفاده یه کدهایی مثل اینی که براتون گذاشتم، پارامتر یا پارامترهای خروجی رو به هر جای دیگه ای که خواستین بریزین
امیدوارم منظورتون رو درست متوجه شده باشم

reuonis
چهارشنبه 06 بهمن 1389, 15:38 عصر
ممنون از شما ولی پارامتر خروجی تون کدومه؟
ا

rana-writes
چهارشنبه 06 بهمن 1389, 21:59 عصر
من فکر کنم منظورتون رو اشتباه متوجه شدم
شما میخواین استورپروسیجرتون خروجی داشته باشه؟
این کاری که من کردم یه رکورد رو میخونه که توی تکست باکسهای یه فرم انجام میده
اون رو راستش بلد نیستم :(