PDA

View Full Version : سوال: اشکال در اتصال به DB



maedeh-t
سه شنبه 02 تیر 1388, 23:49 عصر
سلام
من پروژه ام به دیتا بیس وصل نمی شه! وقتی sqlData Source رو روی فرم می ذارم و بعد configuration و بعد next ....
دوتا گزینه داره. دومیش که انتخاب جداول از پایگاه داده اس غیر فعاله. فقط گزینه اولش فعاله
من قبلاً هم کار کردم مشکلی نداشتم. تمام کدها رو هم چک کردم درسته! فکر کردم مشکل از sql باشه که ورژنش پایینه، sql 2008 نصب کردم اما فرقی نکرد. مشکل از کجا می تونه باشه؟

وقتی Configuration رو می زنیم اونجا که باید connectionString رو انتخاب کنیم من اومدم یه connectionString جدید ساختم با یه اسم دیگه. اون مشکلی که می گمو نداشت. dropdownlist ها الآن به جدول ها وصل می شه و داده هاشو نمایش می ده اما داده هایی که باید داخل پایگاه ذخیره بشه مشکل داره. مثلاً صفحه ثبت نام یا درج محصول. هیچ کدوم کار نمی کنند. چرا اینجوریه؟!

اگه یکم زود جوابمو بدید ممنون می شم چون خیلی عجله دارم.

mononok
چهارشنبه 03 تیر 1388, 22:14 عصر
سلام
ميتوني با كد نويسي هم اتصال درست كني من خودم صفحه ثبت ناممو اينطوري درست كردم


Dim connstr AsString
connstr = "Data Source=MONONOK\NSERVER;Initial Catalog=atragin;User ID=sa;password=123456"
Dim conn As SqlConnection = New SqlConnection(connstr)
Try
conn.Open()
Dim da AsNew SqlDataAdapter
da.SelectCommand = New SqlCommand("select * from user2", conn)
Dim cb AsNew SqlCommandBuilder(da)
Dim ds AsNew Data.DataSet
da.Fill(ds, "user2")
Dim row As Data.DataRow = ds.Tables("user2").NewRow()
row("name") = tn.Text
row("family") = tf.Text
row("username") = tu.Text
row("password") = tp.Text
row("birthday") = tb.Text
row("question") = dq.Text
row("response") = tr.Text
row("email") = te.text
ds.Tables("user2").Rows.Add(row)
da.Update(ds, "user2")
row.AcceptChanges()
l1.Text = "Registering Is Success!"
tn.Text = ""
tf.Text = ""
tu.Text = ""
tp.Text = ""
tb.Text = ""
tr.Text = ""
te.Text = ""
Catch ex As Exception
l1.text = ex.Message
EndTry

اين رو هم در بالاترين قسمت صفحه كدت اضافه كن


Imports System.Data.SqlClient

البته اين تو vb هست
user2 اسم جدول است و datasource رو هم برو view>server explorer و كليك راست كن از اونجا هم مي توني صفحه new connection رو ببيني يه
advanced تو فرم است كه datasource رو اونجا هم مشخص مي كنه كپي كن تو محل كد paste كن اگه sql authentication هستي رمز پايگاهتم ته كد مثل مال من اضافه كن

hobab-theme
پنج شنبه 04 تیر 1388, 00:00 صبح
دوست من mononok
به شما توصیه میکنم به جای استفاده از DataAdapter از DataReader استفاده کنید .
چون سرعت DataReaderها به مراتب بیشتر از DataAdapterها است
البته این کاملاً به نظر شخصی شما بر میگرده

arhnmn
شنبه 06 تیر 1388, 16:34 عصر
سلام دوستان.منم ی ههمچین مشکلی دارم.یعنی می خوام اطلاعاتی که از کاربر میگیرم تو صفحه ثبت نام با کدنویسی وارد دیتا بیس کنم.ولی هر بار یه error میده و از run خارج میشه.کدی که نوشتم اینه:



If IsValid Then

SqlCommand2 = New SqlCommand("insert into customer (agahigroh,ostan,city,agahinoe,agahidahandename,em ail,agahimahiyat,agahititr,agahimatn,agahigheymat, agahiramz) values(' " + drpgroheagahi.SelectedItem.ToString + " ' ,'" + ostan.SelectedItem.ToString + "','" + shahr.SelectedItem.ToString + "','" + rdbgroheagahi.SelectedItem.Value + " ' ,'" + txtnam.Text + " ', '" + txtpostel.Text + " ', '" + txttel.Text + " ' ,'" + rdbnoeagahi.SelectedItem.Value + "', ' " + txttitr.Text + "', ' " + txtareamatnagahi.Value + " ' ,'" + txtgheimat.Text + " ' ,' " + txtkelidramz.Text + " ' )")

SqlConnection1.Open()

SqlCommand2.ExecuteNonQuery()
SqlConnection1.Close()
End If





دوستان خواهشا" کمک کنید من برای پروژم خیلی وقت کم دارم

iman_22a
شنبه 06 تیر 1388, 17:00 عصر
سلام دوستان.منم ی ههمچین مشکلی دارم.یعنی می خوام اطلاعاتی که از کاربر میگیرم تو صفحه ثبت نام با کدنویسی وارد دیتا بیس کنم.ولی هر بار یه error میده و از run خارج میشه.

سلام . متن ارور رو هم بذارید .

saeedr22
شنبه 06 تیر 1388, 17:36 عصر
دوست من mononok
به شما توصیه میکنم به جای استفاده از DataAdapter از DataReader استفاده کنید .
چون سرعت DataReaderها به مراتب بیشتر از DataAdapterها است
البته این کاملاً به نظر شخصی شما بر میگرده
Datareader اصلاً واسه پروژه ها امنیت لازم رو نداره و فقط یکبار میخونه و بهد اطلاعاتش از دست میره

arhnmn
شنبه 06 تیر 1388, 17:51 عصر
متن error این::
ExecuteNonQuery: Connection property has not been initialized.
البته من کدی که یکی از دوستان تو همین تایپیک گذاشته بود رو هم امتحان کردم که هیچ error نمیداد ولی کار نمیکنه یعنی اطلاعات داخل دیتا بیس نمی ره

iman_22a
شنبه 06 تیر 1388, 18:14 عصر
متن error این::
ExecuteNonQuery: Connection property has not been initialized.
البته من کدی که یکی از دوستان تو همین تایپیک گذاشته بود رو هم امتحان کردم که هیچ error نمیداد ولی کار نمیکنه یعنی اطلاعات داخل دیتا بیس نمی ره

خب اگر کدتون همینه که توی پستهای قبلی گذاشتین که اون کد اتصال به بانک رو نداره و ارور هم میگه که Command شما خصوصیت کانکشن براش ایجاد نشده . احتمالا فراموشش کردین

arhnmn
شنبه 06 تیر 1388, 19:19 عصر
عذر می خوام من میشه گفت که یه تازه کارم البته برخی از تعاریف بالای صفحه نوشتم و این کدهایی که تو پست قبلی بود داخل دکمه ی ثبت نوشتم.اگر لطف کنید و کد کامل برای اینکه با زدن یه دکمه اطلاعات کاربر بره داخل دیتا بیس رو بزارین کمک بزرگی به من کردین.چون گفتم من یه تازه کارم و الان سر این مسائل خیلی گیج شدم.

سار
شنبه 06 تیر 1388, 21:08 عصر
دوست عزیز با کمی پیشرفت چطوری؟
سعی کنید از StoredProcedure استفاده کنید
این یک نمونه هست



SqlConnection conn = new SqlConnection("Server=.;Database=dUser ID=Sepidsun;Password=Sepidsun");
conn.Open();
SqlCommand insert = new SqlCommand();
insert.Connection = conn;
insert.CommandType = CommandType.StoredProcedure;
insert.CommandText = "[Adver].[Insert]";
insert.Parameters.Add(new SqlParameter("@CompanyId", Id));
insert.Parameters.Add(new SqlParameter("@Title", ""));
insert.Parameters.Add(new SqlParameter("@TitleInEnglish", ""));
insert.Parameters.Add(new SqlParameter("@ImageURL", "CompanyAdverImage/" + info.Name));
insert.Parameters.Add(new SqlParameter("@RegisterDate", DateTime.Now.Date));
insert.Parameters.Add(new SqlParameter("@ShowInHomePage", false));
insert.ExecuteNonQuery();
conn.Close();

maedeh-t
شنبه 06 تیر 1388, 23:05 عصر
سلام
خیلی ممنون ولی من اصلا VB بلد نیستم. اگه می شه لطف کنید کد C#‎ اش رو بنویسید.
ولی قبلش اگه می شه یه نگاه به این کدی که من برای صفحه ثبت نام نوشتم بندازید ببینید اشکالی داره؟



namespace MySite
{
public partial class join : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
string pass = FormsAuthentication.HashPasswordForStoringInConfig File(txtPass.Text, "SHA1");

ConnectionStringSettingsCollection BookShopConnectionString = WebConfigurationManager.ConnectionStrings as ConnectionStringSettingsCollection;
IEnumerator ConnectionStringEnumerator = BookShopConnectionString.GetEnumerator();
int i = 0;
string connectionStr = "Data Source=MAEDEH;Integrated Security=True";
while (ConnectionStringEnumerator.MoveNext())
{
string Name = BookShopConnectionString[i].Name;
connectionStr = BookShopConnectionString[i].ConnectionString;
i += 1;
}

SqlConnection stJoin = new SqlConnection();
stJoin.ConnectionString = connectionStr;
stJoin.Open();

SqlCommand cmdJoin = new SqlCommand();
cmdJoin.Connection = stJoin;
cmdJoin.CommandType = CommandType.Text;
cmdJoin.CommandText = "select Username from Members where username='" + txtUser.Text + "'";

SqlDataReader drJoin = cmdJoin.ExecuteReader();
if (drJoin.Read())
{
Label2.Visible = true;

}
else
{
drJoin.Close();
cmdJoin.CommandText = "select max(id) from Members";
SqlDataReader drID = cmdJoin.ExecuteReader();
int maxID = 0;
while (drID.Read())
maxID = drID.GetInt32(0);
drID.Close();

maxID++;

SqlCommand cmdInsert = new SqlCommand();
cmdInsert.Connection = stJoin;
cmdInsert.CommandType = CommandType.Text;

Stream img_strm = FileUpload1.PostedFile.InputStream;
int img_len = FileUpload1.PostedFile.ContentLength;
byte[] imgdata = new byte[img_len];
int n = img_strm.Read(imgdata, 0, img_len);

cmdInsert.CommandText = "insert into Members(ID,Name,Family,Username,Pass,Tel,Address,E mail,ProvinceID,CityID,Pic) values(@ID,@Name,@Family,@Username,@Pass,@Tel,@Add ress,@Email,@ProvinceID,@CityID,@Pic)";
cmdInsert.Parameters.Add("@ID", maxID);
cmdInsert.Parameters.Add("@Name", txtName.Text);
cmdInsert.Parameters.Add("@Family", txtFamily.Text);
cmdInsert.Parameters.Add("@Username", txtUser.Text);
cmdInsert.Parameters.Add("@Pass", pass);
cmdInsert.Parameters.Add("@Tel", txtPhone.Text);
cmdInsert.Parameters.Add("@Address", txtAddress.Text);
cmdInsert.Parameters.Add("@Email", txtEmail.Text);
cmdInsert.Parameters.Add("@ProvinceID", DrpProvince.SelectedValue);
cmdInsert.Parameters.Add("@CityID", DrpCity.SelectedValue);
cmdInsert.Parameters.Add("@Pic", imgdata);


cmdInsert.ExecuteNonQuery();
stJoin.Close();
Server.Transfer("Login.aspx");
}
}
}
}





من connection رو از طریق پانل server explorer ایجاد کردم. ولی همونطور که گفتم هیچ چیزی توی DB درج نمی شه!

راستی من این صفحه ثبت نام رو از یک پروژه دیگه که قبلاً انجام داده بودم تو این پروژه ام کپی کردم. هم کدهای html و هم کدهای C#‎ اش رو. ولی هیچ کدوم از اجزای روی فرم رو نمی شناسه. مثل textbox ها، dropdown list ها و ...
این error رو می ده:
The name txtUser dos not exist in the current context
بعد اومدم صفحه رو add کردم. ولی باز هم نمی شناسه. همه اسم ها و id ها و ... رو هم چک کردم. مشکلش چیه؟
البته مشکل وصل نشدن به Db به این مسئله مربوط نمی شه. چون صفحات دیگه هم مشکل دارند.

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

اول اینکه چرا توی جدولها داده استرینکی مثل اسم محصول رو می خوام بنویسم اگه بین حروفش فاصله باشه error میده؟ باید چی کار کنم؟

دوم اینکه من دو تا جدول استان و شهر دارم به این صورت:
- استان ( کد استان ، نام استان )
- شهر ( کد استان ، کد شهر ، نام شهر )
می خوام توی dropdpwn list مربوط به استان وقتی کاربر یک استان رو انتخاب کرد شهرهای مربوط به اون استان توی dropdown list مربوط به شهر نمایش داده بشه. توی چدول شهر باید چی رو کلید بگیرم؟ بعداً تو قسمت configure data source شهر باید یه دستور select براش بنویسم. قبلاً این کارو کردم ولی الآن یادم رفته. اگه می شه بگید چی کار کنم؟

سوم می خوام توی یه ردیف از یک جدول روی فرم دو تا button رو کنار هم بذارم. ولی نمی شه. زیر هم قرار می گیرند. چی کار باید بکنم؟

آخرین سؤالم هم در مورد اضافه کردن محصول به سبد خریده. دو تا جدول دارم به این شکل:
- محصولات ( شماره محصول ، نام محصول ، قیمت، تصویر محصول )
- سبد خرید ( شماره خرید ، کد عضویت ، تاریخ ، تعداد ، قیمت ، قیمت کل )
می خوام توی یک Grid view محصولات رو نمایش بدم. بعد کاربر بتونه هر محصولی رو خواست به سبد خریدش اضافه کنه.
اول در مورد اضافه کردن یک ردیف به grid view که محصول رو انتخاب کنه و بعد در مورد ذخیره ردیف اضافه شده به سبد خرید می شه یکم راهنماییم کنید؟ خیلی عجله دارم.

خیلی ممنونم

compute87
یک شنبه 07 تیر 1388, 09:44 صبح
با سلام به دوستان.
در جواب به دوستمون که مشکل در اتصال به صورت ویزارد دارن باید بگم که لطف کنن و servername رو در زمان تعریف new connection نقطه بگذارن(.) امیدوارم مشکلشون حل شه البته اگه منظورشون رو متوجه شده باشم.
در مورد دوسته دیگمون که یک کد آماده insert خواسته بودن کد زیر این کار رو براتون می کنه.




protected void Button1_Click(object sender, EventArgs e)
{
string connect ="Data Source=.;Initial Catalog=rayana_db;Integrated Security=True";
SqlConnection con = new SqlConnection(connect);
con.Open();
string sql1 = "insert into personel(idp,pname,pfamily,pshsh,tel,mobile,email, password,idsemat,address) values('" + TextBox4.Text + "','" + TextBox1.Text.ToString() + "','" + TextBox2.Text.ToString() + "','" + TextBox7.Text.ToString() + "','" + TextBox8.Text.ToString() + "','" + TextBox9.Text.ToString() + "','" + TextBox3.Text.ToString() + "','" + TextBox5.Text.ToString() + "','" + DropDownList1.SelectedValue.ToString()+ "','"+TextBox10.Text.ToString()+"')";
SqlCommand DBCommand2 = new SqlCommand(sql1, con);
DBCommand2.ExecuteNonQuery();
con.Close();
}


موفق باشید.

compute87
یک شنبه 07 تیر 1388, 10:13 صبح
دوست عزیز نمونه ای رو که براتون گذاشتم امتحان کنید اگه اشکالی داشتید بپرسید.
در ضمن توی کدتون از executedatareader واسه خوندن یک مقدار تنها استفاده کردید که معمولا این کار رو با executescaler انجام می دن.
به صورت زیر:




string connect = ConfigurationManager.AppSettings["ConnectionString"].ToString();
SqlConnection con = new SqlConnection(connect);
con.Open();
//-------------------------------------------------------------------------------------------------
string sql2 = "select max(ids) from class";
SqlCommand sc = new SqlCommand(sql2, con);
object obj = sc.ExecuteScalar();
//---------------------------
int maxid;
if (obj == DBNull.Value)
{
maxid = 0;
}
else
{
maxid = int.Parse(obj.ToString());
maxid = maxid + 1;
}
string sql3 = "insert into class (ids,sath) values (" + maxid + ",'" + TextBox1.Text + "')";
SqlCommand sc1 = new SqlCommand(sql3, con);
sc1.ExecuteNonQuery();
con.Close();



در مورد txtuserکه می گید error می ده توی صفحه یaspx یه searchکنید شاید یک همچین
textbox ای وجود داره که این error رو میده یا اسم یکی از textbox هاتون اینه.
در مورد جدول شهر،کد شهر رو به عنوان کلید اصلی در نظر بگیرید.
و دستور select می تونه به صورت زیر باشه.




select shahrname,codeshahr from shahr where idostan = dropdownlist1.selectedvalue.tostring();



در مورد دکمه که می گید زیر هم قرار می گیرن حتما بینشون یک کد br قرار داره روی دکمه
اول کلیک کنید و به قسمت کد نویسی برید و کدbrرو پاک کنید ok می شه.
موفق باشید.

hobab-theme
یک شنبه 07 تیر 1388, 10:13 صبح
Datareader اصلاً واسه پروژه ها امنیت لازم رو نداره و فقط یکبار میخونه و بهد اطلاعاتش از دست میره
از لحاظ سرعت عرض کردم . در صورتی که استفاده از دیتاست اجباری نداره بهتره که از دیتا ریدر استفاده کنیم .
حتی خود دیتاستها هم در پشت قضیه از دیتاریدر استفاده میکنن

arhnmn
یک شنبه 07 تیر 1388, 14:03 عصر
دوست عزیز واقعا" ازتون ممنونم ولی من با شرمندگی باید بگم که چیزی متوجه نشدم.من گفتم که یه تازه کارم اگر لطف کنید یکم توضیح بدید یا یه روش ساده تر بگید که من بفهمم.

hobab-theme
یک شنبه 07 تیر 1388, 16:59 عصر
دوست عزیز واقعا" ازتون ممنونم ولی من با شرمندگی باید بگم که چیزی متوجه نشدم.من گفتم که یه تازه کارم اگر لطف کنید یکم توضیح بدید یا یه روش ساده تر بگید که من بفهمم.
کجاشو نفهمیدی عزیز؟

arhnmn
دوشنبه 08 تیر 1388, 18:57 عصر
ببینید من یه کدی که یکی از دوستان گذاشته بود رو برای صفحه ی ثبت نام پروژم برداشتم.حالا هیچ مشکلی نیست ولی اطلاعات نمی ره داخل دیتا بیسم.من فکر می کنم مشکل از اینجاست که من 2 ستون دیگه تو همین جدول دارم که تو این صفحه ثبت نام از کاربر مقدار نمی گیرم.یکیش این که شماره ی ثبت نام کننده هاست که می خوام خودش یکی یکی زیاد بشه یعنی ربطی به کاربر نداره یکی دیگشم این که یه ستون به اسم فلگ دارم که باید به صورت پیش فرض صفر باشه بعد مدیر سایت اگه تشخیص داد یک بشه.در کل منظورم اینکه این 2 تا ستون رو کاربر نمی بینه تو صفحه ی ثبت نام.من فکر میکنم مشکل از اینجا باشه!!!لطفا" کمکم کنید یه عالمه مشکل دارم وقتم کم دارم.
کد دکمه ثبت نام این



Dim connstr As String
connstr = "server=ARYAN;database=mahindatabas;uid=sa ; pwd=1410 "
Dim conn As SqlConnection = New SqlConnection(connstr)
Try
conn.Open()
Dim da As New SqlDataAdapter
da.SelectCommand = New SqlCommand("select * from darjeagahi", conn)
Dim cb As New SqlCommandBuilder(da)
Dim ds As New Data.DataSet
da.Fill(ds, "darjeagahi")
Dim row As Data.DataRow = ds.Tables("darjeagahi").NewRow()
row("agahigroh") = drpgroheagahi.SelectedItem.ToString
row("ostan") = ostan.SelectedItem.ToString
row("city") = shahr.SelectedItem.ToString
row("agahinoe") = rdbgroheagahi.SelectedItem.Value
row("agahidahandename") = txtnam.Text
row("email") = txtpostel.Text
row("tel") = txttel.Text
row("agahimahiyat") = rdbnoeagahi.SelectedItem.Value
row("agahititr") = txttitr.Text
row("agahimatn") = txtareamatnagahi.Value
row("agahigheymat") = txtgheimat.Text
row("agahiramz") = txtkelidramz.Text
ds.Tables("darjeagahi").Rows.Add(row)
da.Update(ds, "darjeagahi")
Catch ex As Exception

End Try

hobab-theme
دوشنبه 08 تیر 1388, 21:32 عصر
یکیش این که شماره ی ثبت نام کننده هاست که می خوام خودش یکی یکی زیاد بشه یعنی ربطی به کاربر نداره
شما اینو باید تو SqlServer تنظیم کنید . وقتی این ستون رو ایجاد کردید روی اون ستون راست کلیک کنید و Properties رو انتخاب کنید و گزینه Identity Column رو به ستونی که میخواید اتوماتیک اضاف بشه تنظیم کنید . اینطور با هر رکوردی که به جدول اضاف میشه این ستون یه شماره افزایش پیدا میکنه ( البته باید DataType ستون رو int بزارید )

یه ستون به اسم فلگ دارم که باید به صورت پیش فرض صفر باشه بعد مدیر سایت اگه تشخیص داد یک بشه
میتونید یه Default براش تنظیم کنید که عدد 0 رو درج کنه
برای این کار وقتی دارید ستونهای جدول رو ایجاد میکنید به پنجره Column Properties توجه داشته باشید
یه گزینه بنام Default Value Or Bindng داره . هر مقداری رو تو اون وارد کنید گزینه پیش فرض به حساب میاد
اگه بازم سوالی بود در خدمتم
یا حق

arhnmn
دوشنبه 08 تیر 1388, 22:00 عصر
یه دنیا ممنون.من این تغییرات رو انجام بدم اگر بازم اطلاعاتم نرفت داخل دیتا بیس بازم سئوال می پرسم.راستی شرمندم کدم برای فرستادن اطلاعات کاربر به دیتا بیس که تو پست قبلیم بود به نظر شما درست بود؟؟؟

iman_22a
دوشنبه 08 تیر 1388, 23:10 عصر
یه دنیا ممنون.من این تغییرات رو انجام بدم اگر بازم اطلاعاتم نرفت داخل دیتا بیس بازم سئوال می پرسم.راستی شرمندم کدم برای فرستادن اطلاعات کاربر به دیتا بیس که تو پست قبلیم بود به نظر شما درست بود؟؟؟

به نظر من کدی که شما گذاشته اید ناقصه . دیتاادپتری که ساختین فقط SelectCommand داره و UpdateCommand و InsertCommand نداره . چون دیتاادپتر رو خودتون ایجاد کردین باید اینها رو هم ایجاد کنین (توی شی دیتاست که توی محیط دات نت ساخته میشه ، دیتاتیبل ها هرکدوم یه تیبل ادپتر دارن که غیر از خصوصیت کانکشن ، 4 تا Command لازم را هم دارن . دیتا ادپتر هم تقریبا چنین ساختاری باید داشته باشه )

maedeh-t
سه شنبه 09 تیر 1388, 00:14 صبح
با سلام مجدد

من فردا آخرین مهلتمه و این پروژه من هنوز به دیتا بیس وصل نشده :گریه:
فکر کنم کامپیوتر هم مشکل داره.
امروز پروژه رو بردم روی یک کامپیوتر دیگه تست کردم دیدم این اروری که به اجزای فرم می داد و می گفت موجود نیست رو دیگه نمی ده. ولی اتصال به پایگاه داده اش یه مشکل دیگه پیدا کرد. الآن کلاً می خوام به دیتا بیس وصل بشم ارور می ده و می گه مطمئن بشید که sql آنلاینه!
اون راهی که گفتید نقطه بذارم هم امتحان کردم. فایده نداشت.
هیچ کس نمی دونه مشکلش چیه؟؟؟؟؟ پس من چی کار کنم؟؟؟ :گریه:

در مورد ذخیره سفارش خرید مشتری توی دیتا بیس هم خواهشاً کدش رو یا لینکی چیزی بذارید. من وقت ندارم اصلاً
می خوام محتویات جدول محصولاتم رو توی گرید ویو نمایش بدم و بعد ID کالایی که توسط کابر انتخاب می شه با تعدادش با قیمت کالا و قیمت کل و ID کاربر توی جدول سبد خرید درج بشه.

ممنون می شم.

arhnmn
سه شنبه 09 تیر 1388, 12:40 عصر
دوست عزیز میشه بیشتر راهنمایی کنید.من به صورت تئوری متوجه نمیشم باید چیکار کنم اگر لطف کنید با یه مختصر کد بهم بگید ممنون میشم.

maedeh-t
سه شنبه 09 تیر 1388, 17:51 عصر
سلام
من یه کد برای صفحه خرید نوشتم. خواهشاً یک نگاهی بندازید ببینید درسته یا نه. چون از یه جایی کپی کردم.


محصولات (کد، نام، قیمت، عکس)
سبد خرید (کد، کد محصول، کد کاربر)


توی این صفحه یه گریدویو هست که جدول محصولات رو نمایش می ده، بعد چک باکس داره که کاربر هر کدومو خواست انتخاب کنه و تو سبد خرید ذخیره بشه.
کد صفحه ای که سبد خرید کاربر رو نشون می ده رو هم نوشتم.
خواهش می کنم فقط بگید درسته یا نه



protected void Button1_Click(object sender, EventArgs e)
{
for (int i=0 ; i<GridView1.Rows.Count ; i++)
{
CheckBox chkSelect=(CheckBox)GridView1.Rows[i].FindControl("Basket");
if (chkSelect.Checked)
{
string categoryCode = GridView1.Rows[i].Cells[1].Text.ToString();

MaxID cs = new MaxID();
string id = cs.GetMaxID("Basket").ToString();
SqlConnection st = new SqlConnection();
st.ConnectionString = "";
st.Open();
SqlCommand cmdinsert=new SqlCommand();
cmdinsert.Connection = st;
cmdinsert.CommandType=CommandType.Text;
cmdinsert.CommandText = "insert into Basket (ID,MemberID,CategoryID) values ("
+ id + ",'" + Session["UserID"] + "','" + categoryCode + ",'" + "')";
cmdinsert.ExecuteNonQuery();
st.Close();
}
}
Response.Redirect("~/Bought.aspx",true);

}
}





protected void Page_Load(object sender, EventArgs e)
{
SqlConnection st = new SqlConnection();
st.ConnectionString = "";
st.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = st;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select Basket.CategoryID, Category.Name, Category.Price from Category join Basket on CategoryID = Category.ID where Basket.MemberID=" + Session["UserID"];
SqlDataReader dr = cmd.ExecuteReader();
GridView1.DataSource = dr;
GridView1.DataBind();
dr.Close();
}


راستی عکس رو می شه توی گرید ویو نمایش داد. من این کدو نوشتم اما انگار نمی شه



protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
SqlConnection stshow = new SqlConnection();
stshow.ConnectionString = "";
SqlCommand cmdshow = new SqlCommand();
cmdshow.Connection = stshow;
cmdshow.CommandType = CommandType.Text;
cmdshow.CommandText = "select pic from Categories where ID='" + GridView1.SelectedDataKey.Value + "'";
stshow.Open();
byte[] img = (byte[])cmdshow.ExecuteScalar();
MemoryStream str = new MemoryStream();
str.Write(img, 0, img.Length);
Bitmap bit = new Bitmap(str);
Response.ContentType = "image/jpg";
bit.Save(Response.OutputStream, ImageFormat.Jpeg);
stshow.Close();
}

arhnmn
چهارشنبه 10 تیر 1388, 18:11 عصر
به نظر من کدی که شما گذاشته اید ناقصه . دیتاادپتری که ساختین فقط SelectCommand داره و UpdateCommand و InsertCommand نداره . چون دیتاادپتر رو خودتون ایجاد کردین باید اینها رو هم ایجاد کنین (توی شی دیتاست که توی محیط دات نت ساخته میشه ، دیتاتیبل ها هرکدوم یه تیبل ادپتر دارن که غیر از خصوصیت کانکشن ، 4 تا Command لازم را هم دارن . دیتا ادپتر هم تقریبا چنین ساختاری باید داشته باشه )




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

iman_22a
چهارشنبه 10 تیر 1388, 19:16 عصر
آقای ایمان میشه لطف کتید بگید باید چه قسمتهایی رو به کدم اضافه کنم؟؟سعی کردم ولی نتونستم مشکلش رو حل کنم.فکر کنم چون وقتم کم خیلی استرس دارم,همینم باعث میشه نتونم تمرکز کنم.لطفا" اگر میشه بگید چه کدی باید بهش اضافه کنم؟؟؟


از کدهایی که خانم توانگر گذاشته اند می تونید استفاده کنید . من با دیتاست کار می کنم .

arhnmn
چهارشنبه 10 تیر 1388, 22:01 عصر
خوب من از کد ایشون در ابتدا استفاده کردم دیگه و اون رو با پروژه خودم تطبیق دادم.ببینید من یک مثال کامل برای صفحه ی ثبت نام می خوام که دستم بیاد کاملا" باید چیکار کنم.میشه لطفا" کمکم کنید واقعا" نیاز به کمک دارم

arhnmn
پنج شنبه 11 تیر 1388, 00:59 صبح
دوستان کسی نیست که کمی راهنمائیم کنه؟؟؟من روش ارسال اطلاعات گرفته شده از کاربر به دیتا بیس رو میخوام.لطفا" اگه کسی براش مقدور یه مثال به vb برای من بگه!!!

hobab-theme
پنج شنبه 11 تیر 1388, 03:35 صبح
دوستان کسی نیست که کمی راهنمائیم کنه؟؟؟من روش ارسال اطلاعات گرفته شده از کاربر به دیتا بیس رو میخوام.لطفا" اگه کسی براش مقدور یه مثال به vb برای من بگه!!!
خوب اینکه یه دستور ساده Insert هست
به کد خانم توانگر دقت کنید!


cmdinsert.CommandText = "insert into Basket (ID,MemberID,CategoryID

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


Insert Into TableName (ColumnNames) Value (@ColumnNames)
CommandName.Parameters.Add("@ColumnNames", TextBoxID.Text)

با کد بالا محتوای تکست باکس TextBoxID به جدول TableName اضافه میشه . البته در فیلد ColumnNames .
شما برای اضافه کردن فیلدهای بیشتر اونا رو با (,) از هم جدا کنید
اگه بازم مشکلی بود در خدمتم

arhnmn
پنج شنبه 11 تیر 1388, 13:48 عصر
دوست عزیز از صمیم قلب از شما ممنونم.این مشکلش حل شد و اطلاعات میره داخل دیتا بیس.
خیلی مچکرم بابت کمکتون.