یادگیری C# (بررسی سئوالات و مشکلات)

rawf

عضو جدید
من موقع ساختن ستاپ باید چطوری sql express R2را به پروژه ستاپ سازی ازافه کنم
وموقع نصب sql express روی سیستم مقصد با ید ویندوز اینستالر 4ودات نت فریمورک 2 هم نصب شود
اگر در این مورد من را راهنمایی کنید ممنون میشم
 

golemaryam_1983

عضو جدید
کاربر ممتاز
من موقع ساختن ستاپ باید چطوری sql express R2را به پروژه ستاپ سازی ازافه کنم
وموقع نصب sql express روی سیستم مقصد با ید ویندوز اینستالر 4ودات نت فریمورک 2 هم نصب شود
اگر در این مورد من را راهنمایی کنید ممنون میشم

گل مریم _1983شما من را دراین مورد میتونید کمک کنید؟

سلام دوست عزیز من واقعا شرمندتون هستم شما هم به من لطف دارید که از من تقاضای کمک کردید ولی من تا به حال با ویژال استدیو ستاپ ایجاد نکردم ولی امیدوارم دوستان با تجربه کمکتون کنند. این لینک رو ببیند شاید بتونه بهتون کمک کنه.


http://www.persiadevelopers.com/articles/create-setup-with-vs.aspx



با تشکر
 

golemaryam_1983

عضو جدید
کاربر ممتاز
ممنون از این که پاسخ دادید
شما ستاپ سازی با اینستال شیلد را بلد هستید؟

سلام دوست عزیز خواهش میکنم من اصلا ستاپ سازی کار نکردم.
بازم لینک های زیر رو نگاه کنید شاید کمکتون کنه.

http://www.mspsoft.com/1390/03/12/آموزش-ساخت-برنامه-نصبsetup-در-ویژوال-استود/

http://forum.majidonline.com/archive/index.php/t-63544.html

http://www.iran-forum.ir/thread-84756.html

http://barnamenevis.org/forumdisplay.php?145-Setup-و-Deployment



با تشکر
 

mahmoodof

عضو جدید
سلام و خسته نباشيد اساتيد گرامي
من واقعا شما رو اذيت كردم.
بازم سوال داشتم.براي Attach كردن به مشكل خوردم.
دستور sqlcmd -s .\sqlexpress جواب داد.به اون آدرس رفتم كه فايلهاي ديتا بيسم رو درش كپي كنم ولي يه همچين پوشه ايMSSQL10_50.MSSQLSERVER نديدم و يك راست رفتم تو اين مسير F:\Program Files\Microsoft SQL Server\MSSQL\Data اينجا فايلهاي پايگاه دادم رو ريختم.
و در ادامه شروع كردم به نوشتن بقيه ي فرمان ها .
همه داشت درست پيش ميرفت ولي در آخر با يه همچين خطاهايي كه عكسشو - زير گذاشتم مواجه شدم.
راستي ...
براي انتخاب نام ديتابيس در دستور CREATE DATABASE زماني كه اسم خود ديتابيسم رو دادم خطاي Syntax error داد و مجبور شدم اسمشو تغيير بدم.زماني كه تغييرش دادم.ديدم به پسوندشم Syntax Error ميده .از همين بابت پسوندشم برداشتم و اسم db رو براش انتخاب كردم.كه در آخر با مشكل زير بر خوردم.

error_attach.jpg
منتظرم.يا علي...
 
آخرین ویرایش:

mahmoodof

عضو جدید
سلامي مجدد
من كه هي دارم سوال ميكنم.يه چند تا سوال ديگه هم دارم.ممنون ميشم جواب بدين .:smile:
کد:
if (con.State == ConnectionState.Closed) con.Open();
توي خط كد بالا . con يك شي از نوع Sqlconnection هست.
ميخوام كاربرد اينكه con.state رو برابر با ConnectionState.closed قرار داده بدونم.اصلا كلا State و ConnectionState.closed چي هست ؟؟؟؟؟
ممنونم.
حالا سوال بعدي :
کد:
protected void Page_Load(object sender, EventArgs e)
    {
        if (HiddenField1.Value == "0")
        {
            HiddenField1.Value = "1";
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandText = "select name,family,username,pass,city,addressh,addressw,post,tell,cellphone,email from personal where username='" + Session["username"] + "'";
            con.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.Read())
            {
                TextBox1.Text = dr["name"].ToString();
                TextBox2.Text = dr["family"].ToString();
                TextBox3.Text = dr["username"].ToString();
                TextBox4.Text = dr["pass"].ToString();
                TextBox5.Text = dr["city"].ToString();
                TextBox6.Text = dr["addressh"].ToString();
                TextBox7.Text = dr["addressw"].ToString();
                TextBox8.Text = dr["post"].ToString();
                TextBox9.Text = dr["tell"].ToString();
                TextBox10.Text = dr["cellphone"].ToString();
                TextBox11.Text = dr["email"].ToString();
            }
            con.Close();
        }
    }
سوالم درباره ي HiddenField هست.
كاربردش توي اينجا دقيقا چيه ؟؟؟؟ اينكه باعث ميشه اطلاعات قبلي كه با sqldatareader خونده شده كه قراره ويرايس بشن دوباره
از طريق رويداد Form_load دوباره نبايد به شكل قبلي برگرده.سرتون رو درد نيارم ديگه !!!به طور كلي اينكه ميتونيم اطلاعاتمون رو ببينيم و به صورتي كه ميخوام ويرايشش كنيم. رو ميدونم ولي ميخوام از جزئيات خبر داشته باشم.كه مثلا الان تو اين خط چه اتفاقي افتاده !!!!!!
منتظرم و ممنون و سپاسگذارم.
موفق باشيد.
يا علي...
 
آخرین ویرایش:

golemaryam_1983

عضو جدید
کاربر ممتاز
سلامي مجدد
من كه هي دارم سوال ميكنم.يه چند تا سوال ديگه هم دارم.ممنون ميشم جواب بدين .:smile:
کد:
if (con.State == ConnectionState.Closed) con.Open();
توي خط كد بالا . con يك شي از نوع Sqlconnection هست.
ميخوام كاربرد اينكه con.state رو برابر با ConnectionState.closed قرار داده بدونم.اصلا كلا State و ConnectionState.closed چي هست ؟؟؟؟؟
ممنونم.

سلام دوست عزیز این کد میاد اتصال پایگاه رو چک میکنه که اگر بسته هست بازش کنه.


با تشکر
 

A.S.Roma

عضو جدید
کاربر ممتاز
سلامي مجدد
من كه هي دارم سوال ميكنم.يه چند تا سوال ديگه هم دارم.ممنون ميشم جواب بدين .:smile:
کد:
if (con.State == ConnectionState.Closed) con.Open();
توي خط كد بالا . con يك شي از نوع Sqlconnection هست.
ميخوام كاربرد اينكه con.state رو برابر با ConnectionState.closed قرار داده بدونم.اصلا كلا State و ConnectionState.closed چي هست ؟؟؟؟؟
ممنونم.
حالا سوال بعدي :
کد:
protected void Page_Load(object sender, EventArgs e)
    {
        if (HiddenField1.Value == "0")
        {
            HiddenField1.Value = "1";
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandText = "select name,family,username,pass,city,addressh,addressw,post,tell,cellphone,email from personal where username='" + Session["username"] + "'";
            con.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.Read())
            {
                TextBox1.Text = dr["name"].ToString();
                TextBox2.Text = dr["family"].ToString();
                TextBox3.Text = dr["username"].ToString();
                TextBox4.Text = dr["pass"].ToString();
                TextBox5.Text = dr["city"].ToString();
                TextBox6.Text = dr["addressh"].ToString();
                TextBox7.Text = dr["addressw"].ToString();
                TextBox8.Text = dr["post"].ToString();
                TextBox9.Text = dr["tell"].ToString();
                TextBox10.Text = dr["cellphone"].ToString();
                TextBox11.Text = dr["email"].ToString();
            }
            con.Close();
        }
    }
سوالم درباره ي HiddenField هست.
كاربردش توي اينجا دقيقا چيه ؟؟؟؟ اينكه باعث ميشه اطلاعات قبلي كه با sqldatareader خونده شده كه قراره ويرايس بشن دوباره
از طريق رويداد Form_load دوباره نبايد به شكل قبلي برگرده.سرتون رو درد نيارم ديگه !!!به طور كلي اينكه ميتونيم اطلاعاتمون رو ببينيم و به صورتي كه ميخوام ويرايشش كنيم. رو ميدونم ولي ميخوام از جزئيات خبر داشته باشم.كه مثلا الان تو اين خط چه اتفاقي افتاده !!!!!!
منتظرم و ممنون و سپاسگذارم.
موفق باشيد.
يا علي...
در مورد HiddenField و ...
برای این که بفهمید این کد چکار می کنه و چرا اینجوری نوشته و نهایتا" بهتر بود اینجوری نوشته نشه باید براتون یکم قصه بگم !
کنترل های ASP.NET یه چیزی دارن به نام ViewState . یک مقدار متنی که حاوی آخرین State کنترل هست. (البته در ASP.NET MVC چنین چیزی وجود ندارد.)
از طرفی تمامی صفحات ASp.NET بر روی خودشون Post میشن (مگر اینکه صراحتا" خلاف اون ذکر بشه) و در هر بار رفت و برگشت میان سرور و کلاینت ایونت Page_Load صفحه فراخوانی میشه.

HiddenField هم یک کنترل هست مثل TextBox با این تفاوت که User نمی بینه.
نویسنده کد بالا قصد داشته با استفاده از یک HiddenField از یک طرف جلوی ارتباط بی جهت با DataBase رو بگیره و از طرف دیگه اجازه ی ویرایش اطلاعات رو به کاربر بده.
ASp.NET در صفحات خود یک Property به نام IsPostBack داره که وظیفه اش همینه و نیازی به استفاده از HiddenField نیست.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
در صورتی که با ASP.NET چندان آشنا نباشید نباید خیلی از صحبت های من استفاده کرده باشید. پیشنهاد می کنم Core C# و همچنین کار با DataBase رو بیاموزید بعد وارد پیچیدگی های وب شوید. چون کد نویسی تو وب با ویندوز کمی متفاوته و باید یک سری چیزا رو در نظر گرفت.
 

mahmoodof

عضو جدید
سلام و خسته نباشيد اساتيد گرامي
من واقعا شما رو اذيت كردم.
بازم سوال داشتم.براي Attach كردن به مشكل خوردم.
دستور sqlcmd -s .\sqlexpress جواب داد.به اون آدرس رفتم كه فايلهاي ديتا بيسم رو درش كپي كنم ولي يه همچين پوشه ايMSSQL10_50.MSSQLSERVER نديدم و يك راست رفتم تو اين مسير F:\Program Files\Microsoft SQL Server\MSSQL\Data اينجا فايلهاي پايگاه دادم رو ريختم.
و در ادامه شروع كردم به نوشتن بقيه ي فرمان ها .
همه داشت درست پيش ميرفت ولي در آخر با يه همچين خطاهايي كه عكسشو - زير گذاشتم مواجه شدم.
راستي ...
براي انتخاب نام ديتابيس در دستور CREATE DATABASE زماني كه اسم خود ديتابيسم رو دادم خطاي Syntax error داد و مجبور شدم اسمشو تغيير بدم.زماني كه تغييرش دادم.ديدم به پسوندشم Syntax Error ميده .از همين بابت پسوندشم برداشتم و اسم db رو براش انتخاب كردم.كه در آخر با مشكل زير بر خوردم.

مشاهده پیوست 87626
منتظرم.يا علي...
از جوابتون جهت پست آخري بسيار سپاسگذار و ممنونم.واقعا استفاده كردم.
:smile:
البته !!!!! :(
كسي جواب اين پستمو نداد ............
 

mahmoodof

عضو جدید
سلام
آره از اون لينك هم استفاده كردم.فرمانهارو هم به همون شكل وارد كردم ولي با همين خطاهاي زير برخوردم.
error_attach.jpg
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار

mahmoodof

عضو جدید
سلام و خسته نباشيد خدمت اساتيد گرامي
عكس زير چه خطايي رو نشون ميده و چطور بايد رفعش كنم؟
ممنون و سپاسگذارم و منتظرم.
error.jpg
موفق باشيد.يا علي...
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام و خسته نباشيد خدمت اساتيد گرامي
عكس زير چه خطايي رو نشون ميده و چطور بايد رفعش كنم؟
ممنون و سپاسگذارم و منتظرم.
مشاهده پیوست 88895
موفق باشيد.يا علي...

کاملاً مشخصه دوست عزیز، شما DataKey را برای گرید تعریف نکردید. یعنی مثلاً آی دی را باید به این خصوصیت نسبت بدید تا SelectedValue معنی داشته باشه :gol:
 

mahmoodof

عضو جدید
سلام و خسته نباشيد مجدد
مثل اينكه سوالاي من تمومي ندارن !!!!!!!!!
توي طراحي وب :
من دو تا جدول به نامهاي personal و comment دارم.كه :
personal شامل :name,family,username,pass,city و ... هست.توي اين جدول username كليد اصلي هستش.
comment شامل :id,family,username,email,commentt هست.توي اين جدول id كليد اصلي هستش.id از نوع int تعريف شده !

من ميخوام زماني كه جدول comment در يك grideview نمايش داده ميشه ، وقتي كه يك رديف از اين جدول انتخاب ميشه ، در جدول جدايي مثل DetailsView ، جزئيات كاربر انتخاب شده نمايش داده بشه !!!!!
ممنون ميشم بازم كمكم كنيد.
موفق باشيد.يا علي...
 

A.S.Roma

عضو جدید
کاربر ممتاز
زمانی که انتخاب میشه بایستی به طریقی username سطر انتخاب شده رو بدست بیارید. سپس با چنین Query‌به خواستتون برسید :
کد:
SELECT name,family,username,pass,city FROM [personal] WHERE username LIKE @username
 

mahmoodof

عضو جدید
ممنونم از پاسختون دوست گرامي
البته من فكر كنم كه منظورم رو خوب انتقال ندادم.
منظور من اينه كه جدول comment حاوي نظرات كاربران هستش و از طريق يك Grideview نمايش داده ميشه !!!
جدول personal هم حاوي مشخصات كاربران هستش كه ميخوام از طريق يك Detailsview نمايش داده بشه !
با اين شرايط كه كليد جدول personal :username هستش و كليد جدول comment:id هستش.
حالا بين اين جداول چطوري بايد ارتباط داد؟دستورات اين قسمت رو چطوري بايد بنويسيم؟
ممنونم.يا علي...
 

mahmoodof

عضو جدید
سلام
چرا این اواخر ، این تاپیک اینجوری شده ؟!!!!!!!!!!!!!!!!!!!:( چرا اینقدر ساکت و بی سر و صداست ؟؟؟
 

zahra1386

مدیر بازنشسته
کاربر ممتاز
ممنونم از پاسختون دوست گرامي
البته من فكر كنم كه منظورم رو خوب انتقال ندادم.
منظور من اينه كه جدول comment حاوي نظرات كاربران هستش و از طريق يك Grideview نمايش داده ميشه !!!
جدول personal هم حاوي مشخصات كاربران هستش كه ميخوام از طريق يك Detailsview نمايش داده بشه !
با اين شرايط كه كليد جدول personal :username هستش و كليد جدول comment:id هستش.
حالا بين اين جداول چطوري بايد ارتباط داد؟دستورات اين قسمت رو چطوري بايد بنويسيم؟
ممنونم.يا علي...

سلام

خب وقتی شما یه عنصر مشترک بین هر دو جدول دارین در واقع به نوعی این دو تا با هم مرتبط میشن دیگه!

این طوری که خودتون گفتین username بین هر دو مشترکه...پس می تونید از همین عنصر استفاده کنید و همون طور که دوست عزیزمون A.S.Roma فرمودن با استفاده از یک کوئری ساده می تونید به عناصر جداول دسترسی داشته باشید....
 

mahmoodof

عضو جدید
سلام
آخه همين كارو در sqldatasource انجام دادم.يعني يه همچنين تنظيماتي رو درش اعمال كردم ولي وقتي سايت رو اجرا ميكنم.جواب نميده !!!!!!!!!
اينه اون كد اس كيو الي كه براش اعمال ميشه :
کد:
SELECT * FROM [personal] WHERE ([username] LIKE '%' + @username + '%')

ولي توي خود تنظيمات sqldatasource كه يه كليد به اسم test Query داره .تست ميكنم درسته !!!!!!!!!!!!!
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام
آخه همين كارو در sqldatasource انجام دادم.يعني يه همچنين تنظيماتي رو درش اعمال كردم ولي وقتي سايت رو اجرا ميكنم.جواب نميده !!!!!!!!!
اينه اون كد اس كيو الي كه براش اعمال ميشه :
کد:
SELECT * FROM [personal] WHERE ([username] LIKE '%' + @username + '%')

ولي توي خود تنظيمات sqldatasource كه يه كليد به اسم test Query داره .تست ميكنم درسته !!!!!!!!!!!!!

اگر فارسی جستجو میکنی N هم نیاز هست و همچنین تعداد کوتیشن ها درست نیست :gol:
 

A.S.Roma

عضو جدید
کاربر ممتاز
اگر از نظر خودتون همه چیز درسته ولی جواب نمی گیرید از ابزار Profiler نرم افزار SQL Server جهت Log گرفتن از Query که اجرا می شود استفاده کنید وببینید آیا دقیقا" همونی هست که شما انتظارش رو دارید یا خیر.
 

aabedeni

عضو جدید
مشکل

مشکل

مشکل من اینه که یک فرم ورود درست کردم که اطلاعاتی رو وارد جدول کنم با استفاده از تکس باکس .
میشه راهنمایی کنید چطوراز باید اطلاعاتم روبا استفاده از تکس باکس وارد بانکم کنم ؟
 

df2012

عضو جدید
سلام دوستان عزیز می بینم که به C# علاقه مند هستید .
ولی یادتون باشه هیچوقت و هیچوقت یک Query مستقیم از تو برنامه تون نزنید .
می پرسید چرا ؟
چونکه حر فه ای ها به راحتی برنامه تون رو با SQL Injection هک می کنند . باور ندارید .
اگر خواستید بهتون یاد می دم .
نم دونم تا حالا برنامه نویسی حرفه ای کردید یا نه ولی خیلی چیزها باید یاد بگیرید . مصصم باشید و سوال کنید . سوال سوال و سوال .
12 ساله برای مهم ترین پروژه های مالی برنامه می نویسم. از برنامه های تحت DOS گرفته تا .net و ....
خوش باشید .
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام دوستان عزیز می بینم که به C# علاقه مند هستید .
ولی یادتون باشه هیچوقت و هیچوقت یک Query مستقیم از تو برنامه تون نزنید .
می پرسید چرا ؟
چونکه حر فه ای ها به راحتی برنامه تون رو با SQL Injection هک می کنند . باور ندارید .
اگر خواستید بهتون یاد می دم .
نم دونم تا حالا برنامه نویسی حرفه ای کردید یا نه ولی خیلی چیزها باید یاد بگیرید . مصصم باشید و سوال کنید . سوال سوال و سوال .
12 ساله برای مهم ترین پروژه های مالی برنامه می نویسم. از برنامه های تحت DOS گرفته تا .net و ....
خوش باشید .

دوست عزیز نیکی و پرسش؟ ;)
اتفاقاً فکر کنم بچه ها مبحث SQL Injection را دوست داشته باشند گرچه همه گیر شده اما اگر بتونید تاپیکی برای مباحث امنیتی راه بندازید کلاً جالب میشه. ما هم استقبال می کنیم :gol:
 

df2012

عضو جدید
دوست عزیز نیکی و پرسش؟ ;)
اتفاقاً فکر کنم بچه ها مبحث SQL Injection را دوست داشته باشند گرچه همه گیر شده اما اگر بتونید تاپیکی برای مباحث امنیتی راه بندازید کلاً جالب میشه. ما هم استقبال می کنیم :gol:

سلام .
دوستان منو ببخشید چون سرم خیلی شلوغ هستش . شاید در هفته یکی دوبار بتونم تاپیک هایی رو که فکر می کنم خوبه ورق بزنم و کامنت هایی بنویسم ولی واقعا فرصت ایجاد یک تاپیک و پیگیری مستمرش رو ندارم . اگه خواستید اقدام کنید من هم در خور توانم کمک می کنم .

بزرگترین مسائل امنیت اطلاعات رو تو بانکها می تونید حس و لمس کنید. البته اغلب بانکهای دنیا سراغ چیزی به اسم MS SQL Server نمی رن . اونهایی که خیلی محتاط هستند از بانک اطلاعاتی DB2 محصول IBM که غالبا روی ماشین ها و OS های خود IBM استفاده می شن می رن . الباقی هم با ORACLE در محیط DATACENTER کار می کنن و غالبا سیستم عاملی غیر از Windows استفاده می کنن.

فکر کنم خیلی زود باشه تا راجع به این چیز ها بخوایم صحبت کنیم .
خوش باشید :D
 

linux_0011

عضو جدید
سلام.

1 مشکلی توی سی شارپ دارم.البته ویندوز اپلیکیشن
نتایج جستجو داخل گریدویو هست.
میخوام با انتخاب 1 سطر کلیه اطلاعات اون سطر داخل تعدادی جعبه متن قرار بگیره.
اما نمیدونم چجوریه
(سرچ جوریه که نمیشه اطلاعاتمو مستقیم داخل جعبه متن بذارم)

سوال دیگه اینکه چجوری میتنوم برنامه رو exeکنم؟تو خود ویژوال استودیو میشه.
مرسی دوستان.
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
سلام.

1 مشکلی توی سی شارپ دارم.البته ویندوز اپلیکیشن
نتایج جستجو داخل گریدویو هست.
میخوام با انتخاب 1 سطر کلیه اطلاعات اون سطر داخل تعدادی جعبه متن قرار بگیره.
اما نمیدونم چجوریه
(سرچ جوریه که نمیشه اطلاعاتمو مستقیم داخل جعبه متن بذارم)

سوال دیگه اینکه چجوری میتنوم برنامه رو exeکنم؟تو خود ویژوال استودیو میشه.
مرسی دوستان.

راحت ترین روش استفاده از BindingManagerBase هست که وقتی به دیتاست وصل میشه، در هر لحظه میدونه کجاست و براحتی میتونی اطلاعات رو fetch کنی ;)
 

Similar threads

بالا