بیتافرهی
دوشنبه 31 فروردین 1388, 02:13 صبح
سلام
من یه GridView روی فرمم دارم که اسامی دروس را نشان می دهد.در هر سطر این گرید ویو نیز یک check Box گذاشته ام که اگر کاربر اونو انتخاب کرد این درس به جدول دروس انتخاب شده توسط کاربر اضافه شود.می خوام کاربر اول دروسی که می خواد انتخاب کنه بعد دکمه ی ارسال را بزنه(قابلیت چند انتخابی داشته باشه)
من از کد زیر استفاده کردم:
protected void Button1_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox checkbox = (CheckBox)row.FindControl("choose");
if (checkbox.Checked)
{
SqlDataSource1.Insert();
}
}
}و روی sqlDataSource هم در insert Query کد زیر را نوشتم:
INSERT INTO Tbl_pish_sabteName_course(userName_as_stdNum, crs_name, term) VALUES (@userName_as_stdNum, @crs_name, 1)الان مشکل من با این پارامترهای ورودی است.پارامتر اول را از طریق session تامین می شود که مشکلی ندارم ولی با پارامتر دوم که از طریق یکی از ستون های gridView تامین می شود مشکل دارم .چون وقتی اجرا می کنم ،پیغام خطای زیر را می دهد:
Cannot insert the value NULL into column 'crs_name', table 'DB_UNI_VIRTUAL.dbo.Tbl_pish_sabteName_course'; column does not allow nulls. INSERT fails.
The statement has been terminated. کد مربوط به پارامترهای ورودی در sqlDataSource هم به قرار زیر است:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DB_UNI_VIRTUALConnectionString4 %>"
SelectCommand="SELECT [crs_id], [crs_name], [unit], [price], [have_preRequrement] FROM [Tbl_course_register]" InsertCommand="INSERT INTO Tbl_pish_sabteName_course(userName_as_stdNum, crs_name, term) VALUES (@userName_as_stdNum, @crs_name, 1)" >
<InsertParameters>
<asp:SessionParameter Name="userName_as_stdNum" SessionField="usr" DefaultValue="" />
<asp:ControlParameter ControlID="GridView1" Name="crs_name" PropertyName="SelectedValue"/>
</InsertParameters>
</asp:SqlDataSource>الان مشکل من با پارامتر دومه.مقدار پارامتر crs_name از ستون دوم گرید ویو باید به دست بیاد.ظاهرا که درسته ولی نمی دونم چرا همچین خطایی میده.لطفا منو راهنمایی کنید.
من یه GridView روی فرمم دارم که اسامی دروس را نشان می دهد.در هر سطر این گرید ویو نیز یک check Box گذاشته ام که اگر کاربر اونو انتخاب کرد این درس به جدول دروس انتخاب شده توسط کاربر اضافه شود.می خوام کاربر اول دروسی که می خواد انتخاب کنه بعد دکمه ی ارسال را بزنه(قابلیت چند انتخابی داشته باشه)
من از کد زیر استفاده کردم:
protected void Button1_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox checkbox = (CheckBox)row.FindControl("choose");
if (checkbox.Checked)
{
SqlDataSource1.Insert();
}
}
}و روی sqlDataSource هم در insert Query کد زیر را نوشتم:
INSERT INTO Tbl_pish_sabteName_course(userName_as_stdNum, crs_name, term) VALUES (@userName_as_stdNum, @crs_name, 1)الان مشکل من با این پارامترهای ورودی است.پارامتر اول را از طریق session تامین می شود که مشکلی ندارم ولی با پارامتر دوم که از طریق یکی از ستون های gridView تامین می شود مشکل دارم .چون وقتی اجرا می کنم ،پیغام خطای زیر را می دهد:
Cannot insert the value NULL into column 'crs_name', table 'DB_UNI_VIRTUAL.dbo.Tbl_pish_sabteName_course'; column does not allow nulls. INSERT fails.
The statement has been terminated. کد مربوط به پارامترهای ورودی در sqlDataSource هم به قرار زیر است:
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DB_UNI_VIRTUALConnectionString4 %>"
SelectCommand="SELECT [crs_id], [crs_name], [unit], [price], [have_preRequrement] FROM [Tbl_course_register]" InsertCommand="INSERT INTO Tbl_pish_sabteName_course(userName_as_stdNum, crs_name, term) VALUES (@userName_as_stdNum, @crs_name, 1)" >
<InsertParameters>
<asp:SessionParameter Name="userName_as_stdNum" SessionField="usr" DefaultValue="" />
<asp:ControlParameter ControlID="GridView1" Name="crs_name" PropertyName="SelectedValue"/>
</InsertParameters>
</asp:SqlDataSource>الان مشکل من با پارامتر دومه.مقدار پارامتر crs_name از ستون دوم گرید ویو باید به دست بیاد.ظاهرا که درسته ولی نمی دونم چرا همچین خطایی میده.لطفا منو راهنمایی کنید.