نمایش نتایج 1 تا 29 از 29

نام تاپیک: توضیح اجمالی ارتباط با بانک در VS 2005

  1. #1
    کاربر دائمی آواتار meh_secure
    تاریخ عضویت
    دی 1383
    محل زندگی
    California
    پست
    964

    Question توضیح اجمالی ارتباط با بانک در VS 2005

    سلام دوستان.
    یه تفاوتهایی در ارتباط با بانک در 2003 با 2005 دیده میشه.
    لطفا راهنمایی کنید .

  2. #2
    کاربر دائمی
    تاریخ عضویت
    آذر 1383
    محل زندگی
    تهران
    پست
    1,021

    Lightbulb

    نقل قول نوشته شده توسط meh_secure
    یه تفاوتهایی در ارتباط با بانک در 2003 با 2005 دیده میشه.
    سلام

    بنظر من بیشترین تغییر بین 2003 و 2005 مربوط به ADO.NET است که اعصاب منو ریخته بهم.

    در پناه حق موفق باشید و پرتوان

  3. #3
    کاربر دائمی
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    همه جای ایران سرای من است
    پست
    863
    با سلام خدمت آقای حامد محمدی
    یه سوال که شاید ربطی هم به این تاپیک نداشته باشد:
    آیا شما در VS2005 نیز همچنان برای ایجاد ارتباط با بانک از کد نویسی در Runtime استفاده میکنید یا به استفاده از ویزارد ها و ابزار ارتباط با بانک و کار بر روی آن تغییر مسیر داده اید؟

  4. #4
    جون من که بالا اومد دیشب موقع Update همش Syntax Error میداد در حالیکه همه چیزش درست بود

    Dim connString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=harasat.mdb;Persist Security Info=False"
    Dim StrSQL As String = "Select * from personal"
    Dim adapter As New OleDb.OleDbDataAdapter(StrSQL, connString)
    Dim newRow As New DataSet
    adapter.Fill(newRow, "Personal")
    Dim dr As DataRow = newRow.Tables("personal").NewRow
    dr(0) = "7731017"
    dr(1) = "سایت"
    dr(2) = "برنامه نویس"
    newRow.Tables("personal").Rows.Add(dr)
    Dim sd As New OleDb.OleDbCommandBuilder(adapter)
    adapter.Update(newRow, "Personal")
    adapter.Dispose()
    newRow.Dispose()
    sd.Dispose()


    وخطا:

    Syntax error in INSERT INTO statement.

    هرچی کارش کردم نشد به نظر شما اشکال کار از کجاست

  5. #5
    کاربر دائمی
    تاریخ عضویت
    آذر 1383
    محل زندگی
    تهران
    پست
    1,021

    Lightbulb

    سلام

    نقل قول نوشته شده توسط M.kavyani
    آیا شما در VS2005 نیز همچنان برای ایجاد ارتباط با بانک از کد نویسی در Runtime استفاده میکنید یا به استفاده از ویزارد ها و ابزار ارتباط با بانک و کار بر روی آن تغییر مسیر داده اید؟
    من همیشه دوست داشتم LowLevel کار کنم. میدونم ویزاردهای 2005 فوق العاده قدرتمنده اما من کدزدن رو ترجیح میدم. اینجوری دستم بازتره. وقتی که آدم کد میزنه حواسش به همه جا هست.

    اصلا میدونی تفاوت بین کدزدن و ویزاردها چیه؟
    مثل اینکه شما بخواهی یک SELECT سنگین با چندتا INNER JOIN و OUTER JOIN داشته باشی و اونو بجای اینکه خودت تایپ کنی، بری از QUERY BUILDER بسازیش(البته QUERY BUILDER تمام امکانات SELECT رو نمیتونه بسازه). اینجوری کار رو درست انجام دادی اما خودت شاید مفهوم LEFT OUTER JOIN رو درست متوجه نشده باشی، چون شما یک گزینه رو تیک زدید و LEFT OUTER JOIN به SELECT اضافه شد.
    وقتی که آدم دست به کیبورد میبره میدونه داره چکار میکنه و اگه فردا خواست در برنامشو تغییر بده دستش بازتره.

    البته این نظر منه که به اعتقاد خیلیها غلطه.

    دیگه قضاوت رو بر عهده خودت میزارم...


    در پناه حق موفق باشید و پرتوان
    آخرین ویرایش به وسیله Hamedm : جمعه 23 دی 1384 در 11:30 صبح

  6. #6
    کاربر دائمی
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    همه جای ایران سرای من است
    پست
    863
    با سلام
    جناب آقای محمدی 100 درصد با شما موافقم و متوجه هستم چی میگید ولی من ترجیح میدم که از ویزارد استفاده کنم و اینجوری درصد خطا کمتر میشه و سرعت نوشتن برنامه بالا تر میره اما چیزهایی رو که شما گفتیید نیز باید در نظر گرفت. در مواردی که ویزارد ها نیاز من رو برآورده نمی کنند شروع به تغییر کد ایجاد شده توسط ویزارد میکنم که خود مایکروسافت در این مورد اخطار داده که احتمال به هم ریختن برنامه وجود داره. مخصوصا" در استفاده از بانک ها و....
    در هر حال از پاسخ شما کمال تشکر را دارم و برای شما آرزوی موفقیت و کامروایی میکنم

  7. #7
    کاربر دائمی آواتار meh_secure
    تاریخ عضویت
    دی 1383
    محل زندگی
    California
    پست
    964
    خب بالاخره برای حل این مشکل چه کنیم؟

  8. #8
    برای رفع مشکل نکات زیر رو در نظر بگیر :

    1 - ببین جدول مورد نظرت دارای یک فیلد PK هست یا نه اگر نبود حتما ایجاد کن
    2 - به جای استفاده از CommandBuilder مستقیما دستور Update رو بنویس تا مجبور نباشی هر بار دیتاست رو Fill کنی
    3 - کانکشن رو قبل از عمل Update باز کن Cnn.Open

    در ضمن همیشه سعی کن نامی به غیر از نامهای رزرو شده رو برای اشیاء انتخاب کنی در
    کدهای بالا NewRow اسم مناسبی برای دیتاست نیست

    ================================================== =====

    در مورد کار با ADO.NET 2.0 اگر مشکل خاصی دارین بگین چون کار باهاش خیلی خیلی راحتتر و آسان شده

  9. #9
    ببین جدول مورد نظرت دارای یک فیلد PK هست یا نه اگر نبود حتما ایجاد کن
    اونوقت این یعنی چی ؟ میشه بیشتر توضیح بدهید . متشکریم

  10. #10
    یعنی جدول شما حتما باید یه فیلد به عنوان کلی اصلی داشته باشد یعنی یه فیلد با مقدار منحصر بفرد در هر رکورد حتی اگر AutoNumber هم بگذاری و اون رو PK کنی مشکل حل میشه

  11. #11
    کاربر دائمی
    تاریخ عضویت
    آذر 1383
    محل زندگی
    تهران
    پست
    1,021

    Lightbulb

    نقل قول نوشته شده توسط sh
    یعنی جدول شما حتما باید یه فیلد به عنوان کلی اصلی داشته باشد یعنی یه فیلد با مقدار منحصر بفرد در هر رکورد حتی اگر AutoNumber هم بگذاری و اون رو PK کنی مشکل حل میشه
    در ادامه فرمایشات ایشون باید بگم اگه جدولی PK نداشته باشه، اگه مقدار مثلا تمام فیلدها یکسان باشد، SQL Server به شما اجازه DELETE رو نمیده. چون نمیتواند تفاوتی بین این دو رکورد پیدا کند.

    در پناه حق موفق باشید و پرتوان
    آخرین ویرایش به وسیله Hamedm : دوشنبه 26 دی 1384 در 13:19 عصر

  12. #12
    از جوابهاتون ممنون در اینکه که یک جدول باید حتی الامکان یک کلید اصلی داشته باشد شکی نیست فقط اصطلاح PK برام جدید بود که متوجه شدم مخفف همان (Primary Key) می باشد.

    در ضمن دوستان مشکل کدی رو که در بالا نوشته ام نمی دونند؟
    چند روزه که باهاش دست و پنجه نرم می کنم و هنوز متوجه نشدم که چرا این خطا در خط مربوط به Update کردن رخ می دهد. اونهم یک خطا Syntax . همه چیز روهم بررسی کردم ظاهرا درست است تمام کدها رو هم از مثالهایی در vb.net2003 برداشتم اما نمی دونم چرا در vb.net2005 این خطا را می دهد.
    از راهنماییهاتون بسیار ممنون

  13. #13
    کاربر دائمی
    تاریخ عضویت
    آذر 1383
    محل زندگی
    تهران
    پست
    1,021

    Lightbulb

    نقل قول نوشته شده توسط احمد رایان
    جون من که بالا اومد دیشب موقع Update همش Syntax Error میداد در حالیکه همه چیزش درست بود

    Dim connString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=harasat.mdb;Persist Security Info=False"
    Dim StrSQL As String = "Select * from personal"
    Dim adapter As New OleDb.OleDbDataAdapter(StrSQL, connString)
    Dim newRow As New DataSet
    adapter.Fill(newRow, "Personal")
    Dim dr As DataRow = newRow.Tables("personal").NewRow
    dr(0) = "7731017"
    dr(1) = "سایت"
    dr(2) = "برنامه نویس"
    newRow.Tables("personal").Rows.Add(dr)
    Dim sd As New OleDb.OleDbCommandBuilder(adapter)
    adapter.Update(newRow, "Personal")
    adapter.Dispose()
    newRow.Dispose()
    sd.Dispose()

    وخطا:

    Syntax error in INSERT INTO statement.
    هرچی کارش کردم نشد به نظر شما اشکال کار از کجاست
    سلام

    چرا لقمه رو داری دور دهنت میچرخونی.
    یک دستور INSERT INTO بنویس و دیتاهاتو با این دستور داخل بانک قرار بده.

    در پناه حق موفق باشید و پرتوان

  14. #14
    از راهنماییتون ممنونم تلاشم رو می کنم
    البته در کتاب راهنمای فارسی که از همین سایت گرفتم از همین روش برای دات نت 2003 استفاده کرده بود که من هم برای 2005 استفاده کردم و به بن بست خوردم

  15. #15
    نقل قول نوشته شده توسط Hamedm
    در ادامه فرمایشات ایشون باید بگم اگه جدولی PK نداشته باشه، اگه مقدار مثلا 2 فیلد یکسان باشد، SQL Server به شما اجازه DELETE رو نمیده. چون نمیتواند تفاوتی بین این دو رکورد پیدا کند.

    در پناه حق موفق باشید و پرتوان
    حامد جان این توضیحی که دادی خیلی جالب بود چون من رو این مسئله گیر کرده بودم
    ممنون

  16. #16
    کاربر دائمی آواتار meh_secure
    تاریخ عضویت
    دی 1383
    محل زندگی
    California
    پست
    964
    سلام. یعنی نمیشه بدون استفاده از PK این کار رو کرد؟ بالاخره باید یک روش استانداردی داشته باشه.

  17. #17
    کاربر دائمی
    تاریخ عضویت
    آذر 1383
    محل زندگی
    تهران
    پست
    1,021

    Lightbulb

    نقل قول نوشته شده توسط meh_secure
    سلام. یعنی نمیشه بدون استفاده از PK این کار رو کرد؟ بالاخره باید یک روش استانداردی داشته باشه.
    سلام

    منظورتون چیه؟

    در پناه حق موفق باشید و پرتوان

  18. #18
    کاربر دائمی آواتار meh_secure
    تاریخ عضویت
    دی 1383
    محل زندگی
    California
    پست
    964
    نقل قول نوشته شده توسط Hamedm
    در ادامه فرمایشات ایشون باید بگم اگه جدولی PK نداشته باشه، اگه مقدار مثلا 2 فیلد یکسان باشد، SQL Server به شما اجازه DELETE رو نمیده. چون نمیتواند تفاوتی بین این دو رکورد پیدا کند.

    در پناه حق موفق باشید و پرتوان
    منظور من این بود.
    تو وی بی 6 هم چنین مشکلی هست یا خیر؟؟

  19. #19
    کاربر دائمی
    تاریخ عضویت
    آذر 1383
    محل زندگی
    تهران
    پست
    1,021

    Lightbulb

    نقل قول نوشته شده توسط meh_secure
    منظور من این بود.
    تو وی بی 6 هم چنین مشکلی هست یا خیر؟؟
    سلام

    عزیز جان این مشکل ربطی به زبان برنامه نویسی نداره. این ایرادو خود SQL Server میگیره. البته ایرادش هم درسته.

    در پناه حق موفق باشید و پرتوان

  20. #20
    کاربر دائمی آواتار meh_secure
    تاریخ عضویت
    دی 1383
    محل زندگی
    California
    پست
    964
    من این رو نمی دونستم. البته تا حالا به این مشکل بر نخورده بودم.

  21. #21
    کاربر دائمی
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    همه جای ایران سرای من است
    پست
    863

    Lightbulb

    نقل قول نوشته شده توسط Hamedm
    در ادامه فرمایشات ایشون باید بگم اگه جدولی PK نداشته باشه، اگه مقدار مثلا تمام فیلدها یکسان باشد، SQL Server به شما اجازه DELETE رو نمیده. چون نمیتواند تفاوتی بین این دو رکورد پیدا کند.

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

  22. #22
    کاربر دائمی
    تاریخ عضویت
    آذر 1383
    محل زندگی
    تهران
    پست
    1,021

    Lightbulb

    نقل قول نوشته شده توسط M.kavyani
    بابا دمت گرم به این مشکل بر خورده بودم اما دلیلشو نمی دونستم
    یه سوال:
    اگر دوفیلد یکسان داشته باشیم چگونه میشه پاکشون کرد؟ راهی داره یا باید مثل من کل تیبل رو پاک کنم و از نو....
    این مشکل برای من در ابتدا پپیش اومد یعنی زمانی که من اطلاعات بسیار کمی در تیبل داشتم ولی اگر اطلاعات زیاد بشه چی؟
    سلام

    بعضی از اوقات QUERY ANALYZER میتونه اونارو پاک کنه. اما در اکثر موارد نمیتونه. اول در QA امتحانش کن ببین میتونه پاک کنه یا نه.

    اگه نتونست پاک کنه هیچ راهی نداری.

    من معمولا برای حل این مشکل این کارو انجام میدم (این روش ایده خودمه 100درصد نمیگم بهترین روشه چون ممکنه راه بهتری هم داشته باشه):
    اول تمام جدول رو بدون اون رکوردهای مشکل دار، درون یک DataTable میریزم. بعد با دستور DELETE TableName تمام رکوردهای جدول رو در بانک پاک میکنم (با این دستور رکوردهای مشکلدار هم پاک میشه). بعد DataTable که Fill کرده بودمو درون بانک انتقال میدم.

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

    البته از قدیم گفتند پیشگیری بهتر از درمانه. سعی کنید هیچ جدولی رو بدون فیلد یکتا طراحی نکنید. منظورم ز فیلد یکتا، PK نیست. این فیلد یکتا میتونه uniqueidentifier و یا یک ID باشه که خودتون دارید موقع INSERT کردن رکورد تولید میکنید.

    در پناه حق موفق باشید و پرتوان

  23. #23
    کاربر دائمی آواتار meh_secure
    تاریخ عضویت
    دی 1383
    محل زندگی
    California
    پست
    964
    آقای محمدی درست میگن. البته میشه مقدار چند تا فیلد رو روی هم PK قرار داد که تا حدی از بروز مشکل کم کنه. یا استفاده از یک ID که آقای محمدی فرموده بودند.

  24. #24
    کاربر دائمی
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    همه جای ایران سرای من است
    پست
    863

    Lightbulb

    نقل قول نوشته شده توسط meh_secure
    آقای محمدی درست میگن. البته میشه مقدار چند تا فیلد رو روی هم PK قرار داد که تا حدی از بروز مشکل کم کنه. یا استفاده از یک ID که آقای محمدی فرموده بودند.
    این قسمتی که برجسته اش کردم رو متوجه نشدم میشه توضیح بدی؟؟

  25. #25
    کاربر دائمی آواتار meh_secure
    تاریخ عضویت
    دی 1383
    محل زندگی
    California
    پست
    964
    منظورم اینه که چند تا فیلد رو هم PK باشند. مثل ID و تاریخ و چند تا چیز دیگه

  26. #26
    کاربر جدید
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    tehran
    پست
    3
    راجع کریستال report مقاله می خواهم اگر کسی دارد دریغ نکنه
    اینم یه کد ردیف

  27. #27
    کاربر جدید
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    tehran
    پست
    3

    Question دمتون گرم بابا

    راجع کریستال report مقاله می خواهم اگر کسی دارد دریغ نکنه
    اینم یه کد ردیف

  28. #28
    کاربر دائمی آواتار meh_secure
    تاریخ عضویت
    دی 1383
    محل زندگی
    California
    پست
    964
    بخش کریستال ریپورت.

  29. #29
    کاربر تازه وارد آواتار Arminizer_88
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    UAE-Dubai
    پست
    78
    نقل قول نوشته شده توسط mano
    راجع کریستال report مقاله می خواهم اگر کسی دارد دریغ نکنه
    اینم یه کد ردیف
    بخش کریستال ریپورت + کتاب کتاب کتاب

    نقل قول نوشته شده توسط Hamedm
    سلام

    بنظر من بیشترین تغییر بین 2003 و 2005 مربوط به ADO.NET است که اعصاب منو ریخته بهم.

    در پناه حق موفق باشید و پرتوان
    اینو من با حامد واقعا موافقم چون خودم هم خیلی سر این قضیه اذیتش کردم تا تفاوتهای جدید رو حالیم بشه .
    آخرین ویرایش به وسیله Arminizer_88 : دوشنبه 15 خرداد 1385 در 10:02 صبح دلیل: این پست به دلیل تکراری بودن بطور خودکار ادغام شده است.

قوانین ایجاد تاپیک در تالار

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