PDA

View Full Version : روش ذخیره متغییرهای داینامیک در دیتابیس



ramin149
پنج شنبه 27 مرداد 1390, 10:23 صبح
دارم یک برنامه رزرو هتل می نویسم و به یک مشکل برخورد گردم .
در برنامه ام کاربر تعداد افراد برای رزرو اتاق را وارد می کنه در صفحه بعد من نام و نام خانوادگی مسافران را از کاربر می خواهم که ممکن است مسافر یک نفر باشد یا 100 نفر .
من به چه روشی باید تمام نام و نام خانوادگی مسافران را در دیتابیس ذخیره کنم ؟؟؟

ASPX
پنج شنبه 27 مرداد 1390, 12:16 عصر
راههای مختلفی وجود داره !
فرض کن میخواهی یک جدول درست کنی که معلوم نیست چند تا textbox داشته باشه!
یک دیتا گرید به صورت زیر درست کن


<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CssClass='mygrid'
CellPadding="4" EnableModelValidation="True" ForeColor="#333333"
GridLines="None">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>

<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
</asp:GridView>


بعدش هم چون از صفحه قبل میدونی که کاربر مثلا 30 تا جا میخواد
یک آرایه درست میکنی مثلا


protected void Page_Load(object sender, EventArgs e)
{
FillEmptyGrid(30);
}
private void FillEmptyGrid(int count) {

string[] str = new string[count];
for (int i = 0; i < count; i++)
{
str[i] = i.ToString();
}
GridView1.DataSource = str;
GridView1.DataBind();
}


با findcontrol هم ردیف به ردیف textbox ها رو بخون و بعد اینسرت کن

Saman Hashemi
پنج شنبه 27 مرداد 1390, 12:27 عصر
مشخصات یه نفر بگیر به گرید اضافه کن بعد توی یه حلقه اطلاعات گرید ثبت کن...!

ramin149
پنج شنبه 27 مرداد 1390, 12:33 عصر
خیلی ممنون از جوابتمون یک سوال دیگه مونده .
این توضیحی که دادید برای نمایش برای ذخیره باید چه کار کنم ؟
به نظر من باید یک متغییر از نوع رشته درست کنم و اسم و فامیل تمام افراد را به هم بچسبانم و در یک فیلد از جدول پایگاه دادم ذخیره کنم ؟
یا اینکه روش بهتری برای ذخیره وجود دارد ؟

Saman Hashemi
پنج شنبه 27 مرداد 1390, 13:13 عصر
شما دو تا جدول دارید رزرو اتاق و افراد درون اتاق شما مشخصات افراد توی جدول افراد درون اتاق ثبت میکنید و با یه کلید به جدول رزرو اتاق مرتبط میکنی...!

ramin149
پنج شنبه 27 مرداد 1390, 14:04 عصر
اگر تمام افرادی که رزرو گردن را در یک جدول بریزم حدودا" هر رزرو 4 رکورد ایجاد می شه در آینده سرعت سایت پایین نمی آید موقعی که رکورد های آن جدول زیاد بشه ؟؟؟