PDA

View Full Version : سوال: نمايش فرم تنها در اولين اجرا



vahab2010
پنج شنبه 13 آبان 1389, 11:49 صبح
همگي خسته نباشين

من يه فرم دارم كه ميخوام فقط براي اولين بار كه برنامه اجرا ميشه و كاربر اطلاعات لازم را وارد ميكند نمايش داده شود . روش كارم اينجوريه كه جدولم در sql برسي بشه اگه فيلد هاي مربوطه پر بود ديگه اين فرم نمايش داده نشه امه كد نويسيش رو بلد نيستم ميشه كمكم كنيد؟

sokote_bi_payan
پنج شنبه 13 آبان 1389, 12:01 عصر
به نام خدا
سلام
یه تابع تعریف می کنید (مثلا IS_Complete که چک می کنه ایا فیلدها پر هستند یا نه اگر پرنبود فرم مورد نظرتون و نمایش بده در غیراینتصورت فرم همیشگی تون و نمایش بدین

If Is_Complete() =false then
dim fr as new Name_Formeton()
fr.showDialog()
else
'formi ke mikhayn namayesh bedin
endif
موفق باشید
یا علی

vahab2010
جمعه 14 آبان 1389, 10:00 صبح
من دقيق متوجه نشدم الان كجا چك ميكنه كه فيلدهاي جدولم پره؟ در ضمن من ميخوام فرم نشون داده نشه در كل چيزي نفهميدم:گریه::گریه::گریه:

alimanam
جمعه 14 آبان 1389, 11:28 صبح
با سلام


من دقيق متوجه نشدم الان كجا چك ميكنه كه فيلدهاي جدولم پره؟ در ضمن من ميخوام فرم نشون داده نشه در كل چيزي نفهميدم:گریه::گریه::گریه:از این نمونه کدی که برات نوشتم میتونی استفاده کنی . ( برای آسانی اجرا من از پایگاه داده اکسس استفاده کردم شما میتونین کدهاش رو برای پایگاه داده SQL تغییر بدین ) موفق باشید .

Imports System.Data.OleDb

Public Class Form1
Private cnnstr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = db.mdb;"
Private ad As OleDbDataAdapter
Private ds As New DataSet

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ad = New OleDb.OleDbDataAdapter("select * from tblName", cnnstr)
ad.Fill(ds, "tblName")
Dim Field1 As String = ds.Tables("tblName").Rows(0).Item(0)
If Field1.Length > 0 Then
Me.Hide()
Form2.ShowDialog()
End If
End Sub
End Class

vahab2010
یک شنبه 16 آبان 1389, 10:50 صبح
ممنون اما درست نشد

delasaee
یک شنبه 16 آبان 1389, 12:39 عصر
سلام
من اینکارو کردم
برای اولین بار که فرم لود میشه یه فایل مثلاً تو system32 می سازم دفعه بعد برنامه چک میکنه اگه این فایل بود دیگه اون فرم اجرا نمیشه

vahab2010
سه شنبه 18 آبان 1389, 22:46 عصر
خوب پس لطفي كن و به ما هم ياد بده كه چه جور اين كار رو كردي

omid-vbAuto
چهارشنبه 19 آبان 1389, 00:12 صبح
همگي خسته نباشين

من يه فرم دارم كه ميخوام فقط براي اولين بار كه برنامه اجرا ميشه و كاربر اطلاعات لازم را وارد ميكند نمايش داده شود . روش كارم اينجوريه كه جدولم در sql برسي بشه اگه فيلد هاي مربوطه پر بود ديگه اين فرم نمايش داده نشه امه كد نويسيش رو بلد نيستم ميشه كمكم كنيد؟


دوست عزیز برای همچنین کار ساده ای نیازی به SQL نیست :قهقهه:

یه برنامه برات درست کردم ، اگه مفید واقع شد یک تشکر به من بدهکاری.:چشمک:

59965

alimanam
چهارشنبه 19 آبان 1389, 17:10 عصر
با سلام


دوست عزیز برای همچنین کار ساده ای نیازی به SQL نیست :قهقهه:

دوست عزیز منظور دوستمون این نبود که یه فرم رو یک بار ( به دلخواه کاربر ) نمایش بده !!! میخواد چک کنه اگه در بانک اطلاعاتی اش اگه یه فیلدی ( یا فیلدهایی ) خالی نباشن این فرم نمایش داده بشه که اطلاعات مورد دزخواست اون فرم مقدار دهی بشن .


یه برنامه برات درست کردم ، اگه مفید واقع شد یک تشکر به من بدهکاری.:چشمک:

اینم جهت خالی نموندن عریضه :لبخندساده: ( تشکرش با من )


ممنون اما درست نشد

ماشاا.. به این همه توضیحی که دادی !!! یعنی چی نشد ! کدش ایرادی داره ( باگ داره ؟ )
این نمونه سورس دقیقاً عین درخواست ( سوال ) شما بود ( فقط برای راحتی کار من با اکسس کار کردم حتماً هم دلیلشو میدونی دیگه !!! ) موفق باشید

omid-vbAuto
چهارشنبه 19 آبان 1389, 20:03 عصر
با سلام



دوست عزیز منظور دوستمون این نبود که یه فرم رو یک بار ( به دلخواه کاربر ) نمایش بده !!! میخواد چک کنه اگه در بانک اطلاعاتی اش اگه یه فیلدی ( یا فیلدهایی ) خالی نباشن این فرم نمایش داده بشه که اطلاعات مورد دزخواست اون فرم مقدار دهی بشن .



اینم جهت خالی نموندن عریضه :لبخندساده: ( تشکرش با من )



ماشاا.. به این همه توضیحی که دادی !!! یعنی چی نشد ! کدش ایرادی داره ( باگ داره ؟ )
این نمونه سورس دقیقاً عین درخواست ( سوال ) شما بود ( فقط برای راحتی کار من با اکسس کار کردم حتماً هم دلیلشو میدونی دیگه !!! ) موفق باشید


علی جان باز هم موردی نداره ما می تونیم True یا False بودن اون مقدارمون رو به DataBase ارسالش کنیم.و تو دیتا بیسون بشینه.:لبخند:من نخواستم برنامم در گیر database بشه چون که هدف دوستمون اینه که می خواد مثلا یه فرم تنظیمات تو دفعات اولی که کاربر انجام میده رو تو خودش نگه داره،خوب با برنامه من هم این تنظیمات بعد از خروج از برنامه وحتی خاموش و روشن کردن کامپیوتر باق می مونن.

در ضمن برنامه رو که شما نوشته بودین هم عالی بود،ولی یه ایراداتی داشت مثلا با خالی شودن مقدار فیلدمون برنامه error می داد ویا اینکه اصولا باید برنامه رو که می نویسید تو این موارد بتونه بسته به نظر کاربر مقدار فیلدمون رو تغییر بده و موقع لود دوباره برنامه ،برنامه بر اساس اصلاعات ذخیره شده لود بشه که همچین موردی رو ندیدم.

این رو هم به دوستان بگم که علی جان استاد بنده هستن و من رو خیلی تو کارام کمک کردن .قدرشو بدونین.:چشمک:

alimanam
چهارشنبه 19 آبان 1389, 20:43 عصر
با سلام


من نخواستم برنامم در گیر database بشه

یعنی خواستی صورت سوال رو عوض کنی ( سوال دقیقاً گفته می خوام درگیر بشم :چشمک: )

روش كارم اينجوريه كه جدولم در sql برسي بشه اگه فيلد هاي مربوطه پر بود ديگه اين فرم نمايش داده نشه امه كد نويسيش رو بلد نيستم ميشه كمكم كنيد؟


ولی یه ایراداتی داشت مثلا با خالی شودن مقدار فیلدمون برنامه error می داد

در این مورد حق با شماست چون به این استثناء توجه ایی نکرده بودم .


ویا اینکه اصولا باید برنامه رو که می نویسید تو این موارد بتونه بسته به نظر کاربر مقدار فیلدمون رو تغییر بده و موقع لود دوباره برنامه ،برنامه بر اساس اصلاعات ذخیره شده لود بشه که همچین موردی رو ندیدم.

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


این رو هم به دوستان بگم که علی جان استاد بنده هستن و من رو خیلی تو کارام کمک کردن .قدرشو بدونین.:چشمک:

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

vahab2010
چهارشنبه 19 آبان 1389, 23:09 عصر
( ad = New OleDb.OleDbDataAdapter("select * from tblName", cnnstr

ميشه لطف كنين آقا علي بگين اين خط با sql چي ميشه؟

alimanam
پنج شنبه 20 آبان 1389, 10:55 صبح
با سلام


ميشه لطف كنين آقا علي بگين اين خط با sql چي ميشه؟

در ابتدا فضای کار Imports System.Data.SqlClient رو در قسمت بالا فراخوانی کن بعد هم جواب سوال شما کد زیر میشه :

ad = New SqlDataAdapter("select * from tblName", cnnstr)

فقط یاد باشه که تمامی آبجکتهایی که به صورت OleDb معرفی کردی رو باید تغییر بدی مثل ad که میشه :

Private ad As SqlDataAdapter

و الا آخر .... کانکشن استرینگتم باید عوض کنی به طور مثال اینجوری :

Private cnnstr As String = "Data Source= myServerAddress;Initial Catalog= myDataBase;Integrated Security=SSPI;"

موفق باشید .

vahab2010
جمعه 21 آبان 1389, 13:46 عصر
دقيقا همونجور كه گفتين عمل كردم اما رو اين خط توقف كرد
(Dim Field1 AsString = ds.Tables("peroperties").Rows(0).Item(0
و اين خطا رو بم داد There is no row at position 0.

alimanam
جمعه 21 آبان 1389, 15:32 عصر
با سلام

تیبل شما رکورد داره ؟ ( اطلاعاتی درش هست ؟ )

vahab2010
جمعه 21 آبان 1389, 17:35 عصر
نه ديگه بار اول هيچي درونش نيست تا وقتي كه كاربر اطلاعات لازم ر وارد كنه كه اگه اطلاعات لازم رو وار كرد ديگه اين فرم نمايش داده نميشه

alimanam
جمعه 21 آبان 1389, 19:36 عصر
با سلام


نه ديگه بار اول هيچي درونش نيست تا وقتي كه كاربر اطلاعات لازم ر وارد كنه كه اگه اطلاعات لازم رو وار كرد ديگه اين فرم نمايش داده نميشه خوب باید یه شرط بزار که مثلاً اگه فلان جدولت اگه خالی نباشه این فرم نمایش داده نشه . کدهاش اینجوری میشه :

Imports System.Data.OleDb

Public Class Form1
Private cnnstr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = db.mdb;"
Private ad As OleDbDataAdapter
Private ds As New DataSet

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ad = New OleDb.OleDbDataAdapter("select * from tblName", cnnstr)
ad.Fill(ds, "tblName")

Dim rowItem As Integer = ds.Tables("tblName").Rows.Count

If rowItem > 0 Then
Me.Hide()
Form2.ShowDialog()
End If

End Sub
End Class

موفق باشید .

Alghoochi
شنبه 22 آبان 1389, 10:41 صبح
به جای دریافت کل جدول و بعد بررسی تعداد سطرهاش همون اول بیا و تعداد سطرها رو درخواست کن.



Dim SqlCmd as new OleDbCommand("SELECT Count(*) FROM TblName", OleDbConnection)
if SqlCmd.ExecuteScalar() = 0 Then
Form2.ShowDialog()
End If

singel
شنبه 22 آبان 1389, 11:24 صبح
دوست عزیز اگر منظورتون از نمايش فرم تنها در اولين اجرا اینه که فرمتون فقط در اولین باری که برنامه در این سیستم اجرا میشه نشون بده و دفعات بعد این فرم نمایش داده نشه چرا از ریجیستری استفاده نمیکنید ، که این همه درد سر هم نداره ؟

Alghoochi
شنبه 22 آبان 1389, 12:47 عصر
دوست عزیز اگر منظورتون از نمايش فرم تنها در اولين اجرا اینه که فرمتون فقط در اولین باری که برنامه در این سیستم اجرا میشه نشون بده و دفعات بعد این فرم نمایش داده نشه چرا از ریجیستری استفاده نمیکنید ، که این همه درد سر هم نداره ؟
اگه پست ها رو دنبال کنی می بینی هدفشون از اولین اجرا دریافت یه سری اطلاعات از کاربر و ذخیره اون توی بانک اطلاعاتیه. ولی اگه تنها هدفش نمایش در اولین اجرا باشه به نظر من هم بهترین گزینه رجیستری هست.

vahab2010
شنبه 22 آبان 1389, 23:40 عصر
علي اقا قبل از هر چيز ازتون تشكر ميكنم كه تو حل مشكلم كمكم ميكنيد

اون كد دومي كه دادين مفيد واقع شد اگه بانك من پر باشه ديگه فرمم نمايش داده نميشه اما از دكمه ي add خطاي زير رو ميگيره

Object reference not set to an instance of an object.

alimanam
شنبه 22 آبان 1389, 23:47 عصر
با سلام


اما از دكمه ي add خطاي زير رو ميگيره

دکمه Add ؟ اگه یه سورس کوچولو بزاری که دقیقاً مشخص باشه میخوای چکار کنی بهتر میشه کمکت کرد . موفق باشید .

vahab2010
یک شنبه 23 آبان 1389, 00:17 صبح
شايد تو برنامه اي كه ضميمه كردم منظورم رو متوجه شين سعي كردم به ساده ترين شكل منظورم رو نشون بدم