50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
هک و امنیت شبکه
مایکروسافت
برنامه نویسی
مجازی سازی
شبکه های کامپیوتری
میکروتیک
سیسکو
لینوکس و دواپس
گرافیک کامپیوتری
فایروال
طراحی سایت و سئو
پایگاه داده و داده کاوی
کامپیوتر و موبایل
اینترنت اشیاء
سخت افزار کامپیوتر
تحصیلات آکادمیک
0

ارسال پارامتر جدولی به Store Procedure توسط سی شارپ

سلام

چگونه میتوان از سی شارپ به Stored Procedure در SQL داده ها را بصورت جدول(از طریق پارامتر) ارسال کرد. (بعنوان مثال لیست Id , Name ها)

و داده های جدول ارسال شده توسط پارامتر را در جدولی دیگر درج کرد.

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

پرسیده شده در 1396/05/08 توسط

3 پاسخ

0

سلام و عرض ادب، شما برای ارسال پارامتر به صورت جدول به SP داخل سی شارپ باید از Data Table استفاده کنید. شما یه DataTable با ستون های مورد نظر ایجاد کنید و به عنوان پارامتر SP ست کنید.

پاسخ در 1396/05/08 توسط
0

در صورت امکان مثالی عملی بزنید. با تشکر

پاسخ در 1396/05/08 توسط
1

با سلام

جدولی در دیتابیسمون با نام Table با مشخصات پایین ایحاد می کنیم :

نام و نام خانوادگی و نمره

با سلام
جدولی در دیتابیسمون با نام Table با مشخصات  پایین ایحاد می کنیم :
نام و نام خانوادگی و نمره 
<center>
||https://dba.tosinso.com/files/get/4e1ea48f-3801-460f-8399-66d8ba9f6247||
<center>
بعدش یک نوع جدید تعریف می کنیم (حتما دیدین که توی برنامه نویسی شی گرا شی جدید ایجاد می کنیم با استفاده از کلاس ها) توی دیتابیس هم می تونیم نوع جدید تعریغ کنیم :
<center>
||https://dba.tosinso.com/files/get/e2c9b36e-4608-497e-9724-b13a57c10114||
<center>
نوع جدیدمون رو دقیقا مطابق با جدولمون ساختیم .
خوب حالا یه تابع می نویسیم که پارامتر اون نوع جدیدی که تعریف کردیم رو قبول کنه (نوع جدید ما از نوع جدولی هست ) و رکوردهای نوع جدیدمون رو وارد جدول اصلی کنه :
<center>
||https://dba.tosinso.com/files/get/08749df4-a618-4c9f-b487-25f38263a6a4||
<center>
دقت کنید بعد از تعریف پارامتر جلو نوع جدیدمون نوشتیم READONLY یعنی فقط خواندنی چرا ؟ به دلیل اینکه پارامترهای ما اگه از نوع جدولی تعریف شده توسط کاربر باشه (User-Define TableValue) ما حق انجام عملیات دیلت و اینزرت و آپدیت اون رو نداریم و فقط حق خوندن اون رو داریم .
خوب حالا نوبت برنامه نویسی هست یک پروژه ی ویندوز فرم جدید ایجاد می کنیم داخل رویداد FORM_LOAD اون یک دیتا تیبل تعریف می کنیم با ستون های نام و نام خانوادگی و نمره و اون رو پاس می دیم به تابعی که تعریف کردیم که تابع اصلی ما رو از دیتا بیس فراخونی می کنه :
<center>
||https://dba.tosinso.com/files/get/a1cdea77-ade8-455e-b494-5a9edbba165b||
<center>
ایجاد دیتا تیبل و اضافه کردن ستون ها 
بعد از اضافه کردن ستون ها سه سطر به دیتا تیبل اضافه خواهیم کرد :
<center>
||https://dba.tosinso.com/files/get/3e254791-c375-43ec-b27b-864e6228a31d||
<center>
تابعی که پارامتر ورودی اون یک دیتا تیبل هست ما دیتا تیبل و از تابعی توسط سی شارپ می خونیم و اون و ارسال می کنیم واسه تابع InsertToStudent دیتابیس :
<center>
||https://dba.tosinso.com/files/get/95decd4b-a82a-4620-a099-f7868abacd4f||
<center>
پارامترمون و باید دو خصوصیت واسش تعریف کنیم یکی SqlDataType هست که باید بروی Structured بزاریمش تا دیتابیس متوجه بشه داده ی ارسالی ساختمان داده است یعنی اینکه : از چندین نوع داده در اون استفاده شده مثل دیتا تیبل ما که دوتا ستون رشته و یک ستونی عددی داره .
خصوصیت بعدی باید نام نوعی که تعریف کردیم رو در TypeName یا نام نوع بع پارامتر اعلام کنیم .
اینم نتیجه ی نهایی :
<center>
||https://dba.tosinso.com/files/get/e7b1e5ce-0d0f-48cf-86e6-7c2fe6ea80df||
<center>

بعدش یک نوع جدید تعریف می کنیم (حتما دیدین که توی برنامه نویسی شی گرا شی جدید ایجاد می کنیم با استفاده از کلاس ها) توی دیتابیس هم می تونیم نوع جدید تعریغ کنیم :

با سلام
جدولی در دیتابیسمون با نام Table با مشخصات  پایین ایحاد می کنیم :
نام و نام خانوادگی و نمره 
<center>
||https://dba.tosinso.com/files/get/4e1ea48f-3801-460f-8399-66d8ba9f6247||
<center>
بعدش یک نوع جدید تعریف می کنیم (حتما دیدین که توی برنامه نویسی شی گرا شی جدید ایجاد می کنیم با استفاده از کلاس ها) توی دیتابیس هم می تونیم نوع جدید تعریغ کنیم :
<center>
||https://dba.tosinso.com/files/get/e2c9b36e-4608-497e-9724-b13a57c10114||
<center>
نوع جدیدمون رو دقیقا مطابق با جدولمون ساختیم .
خوب حالا یه تابع می نویسیم که پارامتر اون نوع جدیدی که تعریف کردیم رو قبول کنه (نوع جدید ما از نوع جدولی هست ) و رکوردهای نوع جدیدمون رو وارد جدول اصلی کنه :
<center>
||https://dba.tosinso.com/files/get/08749df4-a618-4c9f-b487-25f38263a6a4||
<center>
دقت کنید بعد از تعریف پارامتر جلو نوع جدیدمون نوشتیم READONLY یعنی فقط خواندنی چرا ؟ به دلیل اینکه پارامترهای ما اگه از نوع جدولی تعریف شده توسط کاربر باشه (User-Define TableValue) ما حق انجام عملیات دیلت و اینزرت و آپدیت اون رو نداریم و فقط حق خوندن اون رو داریم .
خوب حالا نوبت برنامه نویسی هست یک پروژه ی ویندوز فرم جدید ایجاد می کنیم داخل رویداد FORM_LOAD اون یک دیتا تیبل تعریف می کنیم با ستون های نام و نام خانوادگی و نمره و اون رو پاس می دیم به تابعی که تعریف کردیم که تابع اصلی ما رو از دیتا بیس فراخونی می کنه :
<center>
||https://dba.tosinso.com/files/get/a1cdea77-ade8-455e-b494-5a9edbba165b||
<center>
ایجاد دیتا تیبل و اضافه کردن ستون ها 
بعد از اضافه کردن ستون ها سه سطر به دیتا تیبل اضافه خواهیم کرد :
<center>
||https://dba.tosinso.com/files/get/3e254791-c375-43ec-b27b-864e6228a31d||
<center>
تابعی که پارامتر ورودی اون یک دیتا تیبل هست ما دیتا تیبل و از تابعی توسط سی شارپ می خونیم و اون و ارسال می کنیم واسه تابع InsertToStudent دیتابیس :
<center>
||https://dba.tosinso.com/files/get/95decd4b-a82a-4620-a099-f7868abacd4f||
<center>
پارامترمون و باید دو خصوصیت واسش تعریف کنیم یکی SqlDataType هست که باید بروی Structured بزاریمش تا دیتابیس متوجه بشه داده ی ارسالی ساختمان داده است یعنی اینکه : از چندین نوع داده در اون استفاده شده مثل دیتا تیبل ما که دوتا ستون رشته و یک ستونی عددی داره .
خصوصیت بعدی باید نام نوعی که تعریف کردیم رو در TypeName یا نام نوع بع پارامتر اعلام کنیم .
اینم نتیجه ی نهایی :
<center>
||https://dba.tosinso.com/files/get/e7b1e5ce-0d0f-48cf-86e6-7c2fe6ea80df||
<center>

نوع جدیدمون رو دقیقا مطابق با جدولمون ساختیم .

خوب حالا یه تابع می نویسیم که پارامتر اون نوع جدیدی که تعریف کردیم رو قبول کنه (نوع جدید ما از نوع جدولی هست ) و رکوردهای نوع جدیدمون رو وارد جدول اصلی کنه :

با سلام
جدولی در دیتابیسمون با نام Table با مشخصات  پایین ایحاد می کنیم :
نام و نام خانوادگی و نمره 
<center>
||https://dba.tosinso.com/files/get/4e1ea48f-3801-460f-8399-66d8ba9f6247||
<center>
بعدش یک نوع جدید تعریف می کنیم (حتما دیدین که توی برنامه نویسی شی گرا شی جدید ایجاد می کنیم با استفاده از کلاس ها) توی دیتابیس هم می تونیم نوع جدید تعریغ کنیم :
<center>
||https://dba.tosinso.com/files/get/e2c9b36e-4608-497e-9724-b13a57c10114||
<center>
نوع جدیدمون رو دقیقا مطابق با جدولمون ساختیم .
خوب حالا یه تابع می نویسیم که پارامتر اون نوع جدیدی که تعریف کردیم رو قبول کنه (نوع جدید ما از نوع جدولی هست ) و رکوردهای نوع جدیدمون رو وارد جدول اصلی کنه :
<center>
||https://dba.tosinso.com/files/get/08749df4-a618-4c9f-b487-25f38263a6a4||
<center>
دقت کنید بعد از تعریف پارامتر جلو نوع جدیدمون نوشتیم READONLY یعنی فقط خواندنی چرا ؟ به دلیل اینکه پارامترهای ما اگه از نوع جدولی تعریف شده توسط کاربر باشه (User-Define TableValue) ما حق انجام عملیات دیلت و اینزرت و آپدیت اون رو نداریم و فقط حق خوندن اون رو داریم .
خوب حالا نوبت برنامه نویسی هست یک پروژه ی ویندوز فرم جدید ایجاد می کنیم داخل رویداد FORM_LOAD اون یک دیتا تیبل تعریف می کنیم با ستون های نام و نام خانوادگی و نمره و اون رو پاس می دیم به تابعی که تعریف کردیم که تابع اصلی ما رو از دیتا بیس فراخونی می کنه :
<center>
||https://dba.tosinso.com/files/get/a1cdea77-ade8-455e-b494-5a9edbba165b||
<center>
ایجاد دیتا تیبل و اضافه کردن ستون ها 
بعد از اضافه کردن ستون ها سه سطر به دیتا تیبل اضافه خواهیم کرد :
<center>
||https://dba.tosinso.com/files/get/3e254791-c375-43ec-b27b-864e6228a31d||
<center>
تابعی که پارامتر ورودی اون یک دیتا تیبل هست ما دیتا تیبل و از تابعی توسط سی شارپ می خونیم و اون و ارسال می کنیم واسه تابع InsertToStudent دیتابیس :
<center>
||https://dba.tosinso.com/files/get/95decd4b-a82a-4620-a099-f7868abacd4f||
<center>
پارامترمون و باید دو خصوصیت واسش تعریف کنیم یکی SqlDataType هست که باید بروی Structured بزاریمش تا دیتابیس متوجه بشه داده ی ارسالی ساختمان داده است یعنی اینکه : از چندین نوع داده در اون استفاده شده مثل دیتا تیبل ما که دوتا ستون رشته و یک ستونی عددی داره .
خصوصیت بعدی باید نام نوعی که تعریف کردیم رو در TypeName یا نام نوع بع پارامتر اعلام کنیم .
اینم نتیجه ی نهایی :
<center>
||https://dba.tosinso.com/files/get/e7b1e5ce-0d0f-48cf-86e6-7c2fe6ea80df||
<center>

دقت کنید بعد از تعریف پارامتر جلو نوع جدیدمون نوشتیم READONLY یعنی فقط خواندنی چرا ؟ به دلیل اینکه پارامترهای ما اگه از نوع جدولی تعریف شده توسط کاربر باشه (User-Define TableValue) ما حق انجام عملیات دیلت و اینزرت و آپدیت اون رو نداریم و فقط حق خوندن اون رو داریم .

خوب حالا نوبت برنامه نویسی هست یک پروژه ی ویندوز فرم جدید ایجاد می کنیم داخل رویداد FORM_LOAD اون یک دیتا تیبل تعریف می کنیم با ستون های نام و نام خانوادگی و نمره و اون رو پاس می دیم به تابعی که تعریف کردیم که تابع اصلی ما رو از دیتا بیس فراخونی می کنه :

با سلام
جدولی در دیتابیسمون با نام Table با مشخصات  پایین ایحاد می کنیم :
نام و نام خانوادگی و نمره 
<center>
||https://dba.tosinso.com/files/get/4e1ea48f-3801-460f-8399-66d8ba9f6247||
<center>
بعدش یک نوع جدید تعریف می کنیم (حتما دیدین که توی برنامه نویسی شی گرا شی جدید ایجاد می کنیم با استفاده از کلاس ها) توی دیتابیس هم می تونیم نوع جدید تعریغ کنیم :
<center>
||https://dba.tosinso.com/files/get/e2c9b36e-4608-497e-9724-b13a57c10114||
<center>
نوع جدیدمون رو دقیقا مطابق با جدولمون ساختیم .
خوب حالا یه تابع می نویسیم که پارامتر اون نوع جدیدی که تعریف کردیم رو قبول کنه (نوع جدید ما از نوع جدولی هست ) و رکوردهای نوع جدیدمون رو وارد جدول اصلی کنه :
<center>
||https://dba.tosinso.com/files/get/08749df4-a618-4c9f-b487-25f38263a6a4||
<center>
دقت کنید بعد از تعریف پارامتر جلو نوع جدیدمون نوشتیم READONLY یعنی فقط خواندنی چرا ؟ به دلیل اینکه پارامترهای ما اگه از نوع جدولی تعریف شده توسط کاربر باشه (User-Define TableValue) ما حق انجام عملیات دیلت و اینزرت و آپدیت اون رو نداریم و فقط حق خوندن اون رو داریم .
خوب حالا نوبت برنامه نویسی هست یک پروژه ی ویندوز فرم جدید ایجاد می کنیم داخل رویداد FORM_LOAD اون یک دیتا تیبل تعریف می کنیم با ستون های نام و نام خانوادگی و نمره و اون رو پاس می دیم به تابعی که تعریف کردیم که تابع اصلی ما رو از دیتا بیس فراخونی می کنه :
<center>
||https://dba.tosinso.com/files/get/a1cdea77-ade8-455e-b494-5a9edbba165b||
<center>
ایجاد دیتا تیبل و اضافه کردن ستون ها 
بعد از اضافه کردن ستون ها سه سطر به دیتا تیبل اضافه خواهیم کرد :
<center>
||https://dba.tosinso.com/files/get/3e254791-c375-43ec-b27b-864e6228a31d||
<center>
تابعی که پارامتر ورودی اون یک دیتا تیبل هست ما دیتا تیبل و از تابعی توسط سی شارپ می خونیم و اون و ارسال می کنیم واسه تابع InsertToStudent دیتابیس :
<center>
||https://dba.tosinso.com/files/get/95decd4b-a82a-4620-a099-f7868abacd4f||
<center>
پارامترمون و باید دو خصوصیت واسش تعریف کنیم یکی SqlDataType هست که باید بروی Structured بزاریمش تا دیتابیس متوجه بشه داده ی ارسالی ساختمان داده است یعنی اینکه : از چندین نوع داده در اون استفاده شده مثل دیتا تیبل ما که دوتا ستون رشته و یک ستونی عددی داره .
خصوصیت بعدی باید نام نوعی که تعریف کردیم رو در TypeName یا نام نوع بع پارامتر اعلام کنیم .
اینم نتیجه ی نهایی :
<center>
||https://dba.tosinso.com/files/get/e7b1e5ce-0d0f-48cf-86e6-7c2fe6ea80df||
<center>

ایجاد دیتا تیبل و اضافه کردن ستون ها

بعد از اضافه کردن ستون ها سه سطر به دیتا تیبل اضافه خواهیم کرد :

با سلام
جدولی در دیتابیسمون با نام Table با مشخصات  پایین ایحاد می کنیم :
نام و نام خانوادگی و نمره 
<center>
||https://dba.tosinso.com/files/get/4e1ea48f-3801-460f-8399-66d8ba9f6247||
<center>
بعدش یک نوع جدید تعریف می کنیم (حتما دیدین که توی برنامه نویسی شی گرا شی جدید ایجاد می کنیم با استفاده از کلاس ها) توی دیتابیس هم می تونیم نوع جدید تعریغ کنیم :
<center>
||https://dba.tosinso.com/files/get/e2c9b36e-4608-497e-9724-b13a57c10114||
<center>
نوع جدیدمون رو دقیقا مطابق با جدولمون ساختیم .
خوب حالا یه تابع می نویسیم که پارامتر اون نوع جدیدی که تعریف کردیم رو قبول کنه (نوع جدید ما از نوع جدولی هست ) و رکوردهای نوع جدیدمون رو وارد جدول اصلی کنه :
<center>
||https://dba.tosinso.com/files/get/08749df4-a618-4c9f-b487-25f38263a6a4||
<center>
دقت کنید بعد از تعریف پارامتر جلو نوع جدیدمون نوشتیم READONLY یعنی فقط خواندنی چرا ؟ به دلیل اینکه پارامترهای ما اگه از نوع جدولی تعریف شده توسط کاربر باشه (User-Define TableValue) ما حق انجام عملیات دیلت و اینزرت و آپدیت اون رو نداریم و فقط حق خوندن اون رو داریم .
خوب حالا نوبت برنامه نویسی هست یک پروژه ی ویندوز فرم جدید ایجاد می کنیم داخل رویداد FORM_LOAD اون یک دیتا تیبل تعریف می کنیم با ستون های نام و نام خانوادگی و نمره و اون رو پاس می دیم به تابعی که تعریف کردیم که تابع اصلی ما رو از دیتا بیس فراخونی می کنه :
<center>
||https://dba.tosinso.com/files/get/a1cdea77-ade8-455e-b494-5a9edbba165b||
<center>
ایجاد دیتا تیبل و اضافه کردن ستون ها 
بعد از اضافه کردن ستون ها سه سطر به دیتا تیبل اضافه خواهیم کرد :
<center>
||https://dba.tosinso.com/files/get/3e254791-c375-43ec-b27b-864e6228a31d||
<center>
تابعی که پارامتر ورودی اون یک دیتا تیبل هست ما دیتا تیبل و از تابعی توسط سی شارپ می خونیم و اون و ارسال می کنیم واسه تابع InsertToStudent دیتابیس :
<center>
||https://dba.tosinso.com/files/get/95decd4b-a82a-4620-a099-f7868abacd4f||
<center>
پارامترمون و باید دو خصوصیت واسش تعریف کنیم یکی SqlDataType هست که باید بروی Structured بزاریمش تا دیتابیس متوجه بشه داده ی ارسالی ساختمان داده است یعنی اینکه : از چندین نوع داده در اون استفاده شده مثل دیتا تیبل ما که دوتا ستون رشته و یک ستونی عددی داره .
خصوصیت بعدی باید نام نوعی که تعریف کردیم رو در TypeName یا نام نوع بع پارامتر اعلام کنیم .
اینم نتیجه ی نهایی :
<center>
||https://dba.tosinso.com/files/get/e7b1e5ce-0d0f-48cf-86e6-7c2fe6ea80df||
<center>

تابعی که پارامتر ورودی اون یک دیتا تیبل هست ما دیتا تیبل و از تابعی توسط سی شارپ می خونیم و اون و ارسال می کنیم واسه تابع InsertToStudent دیتابیس :

با سلام
جدولی در دیتابیسمون با نام Table با مشخصات  پایین ایحاد می کنیم :
نام و نام خانوادگی و نمره 
<center>
||https://dba.tosinso.com/files/get/4e1ea48f-3801-460f-8399-66d8ba9f6247||
<center>
بعدش یک نوع جدید تعریف می کنیم (حتما دیدین که توی برنامه نویسی شی گرا شی جدید ایجاد می کنیم با استفاده از کلاس ها) توی دیتابیس هم می تونیم نوع جدید تعریغ کنیم :
<center>
||https://dba.tosinso.com/files/get/e2c9b36e-4608-497e-9724-b13a57c10114||
<center>
نوع جدیدمون رو دقیقا مطابق با جدولمون ساختیم .
خوب حالا یه تابع می نویسیم که پارامتر اون نوع جدیدی که تعریف کردیم رو قبول کنه (نوع جدید ما از نوع جدولی هست ) و رکوردهای نوع جدیدمون رو وارد جدول اصلی کنه :
<center>
||https://dba.tosinso.com/files/get/08749df4-a618-4c9f-b487-25f38263a6a4||
<center>
دقت کنید بعد از تعریف پارامتر جلو نوع جدیدمون نوشتیم READONLY یعنی فقط خواندنی چرا ؟ به دلیل اینکه پارامترهای ما اگه از نوع جدولی تعریف شده توسط کاربر باشه (User-Define TableValue) ما حق انجام عملیات دیلت و اینزرت و آپدیت اون رو نداریم و فقط حق خوندن اون رو داریم .
خوب حالا نوبت برنامه نویسی هست یک پروژه ی ویندوز فرم جدید ایجاد می کنیم داخل رویداد FORM_LOAD اون یک دیتا تیبل تعریف می کنیم با ستون های نام و نام خانوادگی و نمره و اون رو پاس می دیم به تابعی که تعریف کردیم که تابع اصلی ما رو از دیتا بیس فراخونی می کنه :
<center>
||https://dba.tosinso.com/files/get/a1cdea77-ade8-455e-b494-5a9edbba165b||
<center>
ایجاد دیتا تیبل و اضافه کردن ستون ها 
بعد از اضافه کردن ستون ها سه سطر به دیتا تیبل اضافه خواهیم کرد :
<center>
||https://dba.tosinso.com/files/get/3e254791-c375-43ec-b27b-864e6228a31d||
<center>
تابعی که پارامتر ورودی اون یک دیتا تیبل هست ما دیتا تیبل و از تابعی توسط سی شارپ می خونیم و اون و ارسال می کنیم واسه تابع InsertToStudent دیتابیس :
<center>
||https://dba.tosinso.com/files/get/95decd4b-a82a-4620-a099-f7868abacd4f||
<center>
پارامترمون و باید دو خصوصیت واسش تعریف کنیم یکی SqlDataType هست که باید بروی Structured بزاریمش تا دیتابیس متوجه بشه داده ی ارسالی ساختمان داده است یعنی اینکه : از چندین نوع داده در اون استفاده شده مثل دیتا تیبل ما که دوتا ستون رشته و یک ستونی عددی داره .
خصوصیت بعدی باید نام نوعی که تعریف کردیم رو در TypeName یا نام نوع بع پارامتر اعلام کنیم .
اینم نتیجه ی نهایی :
<center>
||https://dba.tosinso.com/files/get/e7b1e5ce-0d0f-48cf-86e6-7c2fe6ea80df||
<center>

پارامترمون و باید دو خصوصیت واسش تعریف کنیم یکی SqlDataType هست که باید بروی Structured بزاریمش تا دیتابیس متوجه بشه داده ی ارسالی ساختمان داده است یعنی اینکه : از چندین نوع داده در اون استفاده شده مثل دیتا تیبل ما که دوتا ستون رشته و یک ستونی عددی داره .

خصوصیت بعدی باید نام نوعی که تعریف کردیم رو در TypeName یا نام نوع بع پارامتر اعلام کنیم .

اینم نتیجه ی نهایی :

با سلام
جدولی در دیتابیسمون با نام Table با مشخصات  پایین ایحاد می کنیم :
نام و نام خانوادگی و نمره 
<center>
||https://dba.tosinso.com/files/get/4e1ea48f-3801-460f-8399-66d8ba9f6247||
<center>
بعدش یک نوع جدید تعریف می کنیم (حتما دیدین که توی برنامه نویسی شی گرا شی جدید ایجاد می کنیم با استفاده از کلاس ها) توی دیتابیس هم می تونیم نوع جدید تعریغ کنیم :
<center>
||https://dba.tosinso.com/files/get/e2c9b36e-4608-497e-9724-b13a57c10114||
<center>
نوع جدیدمون رو دقیقا مطابق با جدولمون ساختیم .
خوب حالا یه تابع می نویسیم که پارامتر اون نوع جدیدی که تعریف کردیم رو قبول کنه (نوع جدید ما از نوع جدولی هست ) و رکوردهای نوع جدیدمون رو وارد جدول اصلی کنه :
<center>
||https://dba.tosinso.com/files/get/08749df4-a618-4c9f-b487-25f38263a6a4||
<center>
دقت کنید بعد از تعریف پارامتر جلو نوع جدیدمون نوشتیم READONLY یعنی فقط خواندنی چرا ؟ به دلیل اینکه پارامترهای ما اگه از نوع جدولی تعریف شده توسط کاربر باشه (User-Define TableValue) ما حق انجام عملیات دیلت و اینزرت و آپدیت اون رو نداریم و فقط حق خوندن اون رو داریم .
خوب حالا نوبت برنامه نویسی هست یک پروژه ی ویندوز فرم جدید ایجاد می کنیم داخل رویداد FORM_LOAD اون یک دیتا تیبل تعریف می کنیم با ستون های نام و نام خانوادگی و نمره و اون رو پاس می دیم به تابعی که تعریف کردیم که تابع اصلی ما رو از دیتا بیس فراخونی می کنه :
<center>
||https://dba.tosinso.com/files/get/a1cdea77-ade8-455e-b494-5a9edbba165b||
<center>
ایجاد دیتا تیبل و اضافه کردن ستون ها 
بعد از اضافه کردن ستون ها سه سطر به دیتا تیبل اضافه خواهیم کرد :
<center>
||https://dba.tosinso.com/files/get/3e254791-c375-43ec-b27b-864e6228a31d||
<center>
تابعی که پارامتر ورودی اون یک دیتا تیبل هست ما دیتا تیبل و از تابعی توسط سی شارپ می خونیم و اون و ارسال می کنیم واسه تابع InsertToStudent دیتابیس :
<center>
||https://dba.tosinso.com/files/get/95decd4b-a82a-4620-a099-f7868abacd4f||
<center>
پارامترمون و باید دو خصوصیت واسش تعریف کنیم یکی SqlDataType هست که باید بروی Structured بزاریمش تا دیتابیس متوجه بشه داده ی ارسالی ساختمان داده است یعنی اینکه : از چندین نوع داده در اون استفاده شده مثل دیتا تیبل ما که دوتا ستون رشته و یک ستونی عددی داره .
خصوصیت بعدی باید نام نوعی که تعریف کردیم رو در TypeName یا نام نوع بع پارامتر اعلام کنیم .
اینم نتیجه ی نهایی :
<center>
||https://dba.tosinso.com/files/get/e7b1e5ce-0d0f-48cf-86e6-7c2fe6ea80df||
<center>
پاسخ در 1396/05/09 توسط

پاسخ شما