这是我的数据库的结构:
我的ASP.NET(VB.NET)webform中有textbox1和textbox2以及8个复选框。
我想检索特定日期的座位意味着如果我在textbox1中输入11/12/2010然后在textbox2中输出将来自seat_select列,比如说(1,2,3)其中date将是11 / 12/2010
如果我在textbox1中输入13/12/2010,那么在textbox2中输出将为1,2
如何在VB.NET中执行此操作?
答案 0 :(得分:0)
我不确定这是不是你的意思,但是 - 从广义上讲 - 我会执行select以从数据库中获取相关数据并在阅读器上迭代我将使用Split拆分seat_select并添加列表中的每个元素。 然后我会使用Linq的Distinct删除重复项并显示它。
希望这就是你的意思,这有助于
答案 1 :(得分:0)
您可以使用以下查询返回一个逗号单独的seat_select列表,然后使用linq对返回的数据执行不同的操作。
declare @seats nvarchar(max)
select @seats = seat_select + ',' + isnull(@seats,'') from tableName where [date] ='11/12/2010'
return @seats
答案 2 :(得分:0)
标记:
<asp:TextBox runat="server" ID="txtDate" />
<asp:Button runat="server" ID="cmdGet" Text="Get" OnClick="cmdGet_Click" />
<asp:TextBox runat="server" ID="txtSeat" />
代码隐藏(C#) - 表示层上的格式化:
protected void cmdGet_Click (object sernder, EventArgs e)
{
DateTime d;
if (!DateTime.TryParseExact(txtDate.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out d))
throw new InvalidOperationException("Input was in incorrect format");
using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlCommand command = connection.CreateCommand())
{
command.CommandText = "SELECT seat_select FROM table_seats WHERE date <= @date";
command.Parameters.AddWithValue("@date", d);
connection.Open();
using (SqlDataAdapter adapter = new SqlDataAdapter(command))
using (DataTable table = new DataTable())
{
adapter.Fill(table);
txtSeat.Text = String.Join(", ", table.AsEnumerable().Select(r => r.Field<int>("seat_select")));
}
}
}
不要忘记添加对System.Data.DataSetExtensions.dll
,System.Core.dll
。
代码隐藏(C#) - 数据层格式化:
protected void cmdGet_Click (object sernder, EventArgs e)
{
DateTime d;
if (!DateTime.TryParseExact(txtDate.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out d))
throw new InvalidOperationException("Input was in incorrect format");
using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlCommand command = connection.CreateCommand())
{
command.CommandText = "DECLARE @seats NVARCHAR(MAX); SELECT @seats = COALESCE(@seats + ', ', '') + seat_select FROM table_seats WHERE date <= @date";
command.Parameters.AddWithValue("@date", d);
connection.Open();
txtSeat.Text = (string)command.ExecuteScalar();
}
}