【发布时间】:2017-12-01 16:22:56
【问题描述】:
我正在使用数据库进行作业,并且正在检查是否有任何过期电影。我想知道是否可以从数据库表中获取一个值并将其分配给一个字符串变量。这是我的代码
<asp:Panel runat="server" ID="CheckoutPanel" Visible="false">
<h4>Movies that are Checked Out</h4>
<asp:GridView id="one_data2" AutoGenerateColumns="false" runat="server">
<Columns>
<asp:BoundField DataField="MovieID"
HeaderText="Movie ID"/>
<asp:BoundField DataField="SubscriberID"
HeaderText="Checked Out On"/>
<asp:BoundField DataField="DueDate"
HeaderText="Due On" />
</Columns>
</asp:GridView>
</asp:Panel>
上面是我想从中获取信息的面板。 以下是我制作的代码,但不太好用。
protected void DueMovies(Object src, EventArgs e)
{
get_connection();
connection.Open();
command = new SqlCommand("SELECT * FROM checkout", connection);
reader = command.ExecuteReader();
int movieId = one_data2.Rows["0"]["MovieID"].ToString();
string subId = one_data2.Rows["1"]["SubscriberID"].ToString();
string dueDate = one_data2.Rows["2"]["DueDate"].ToString();
DateTime lateDate = Convert.ToDateTime(one_data2.Rows["2"]["DueDate"]);
if(DateTime.Now >= lateDate)
{
string EmailMsg = "A late message has been sent to " + subId;
}
else
{
lblInfo.Text = "No movies are due soon";
}
}
变量不起作用,因为我收到一条错误消息,说我无法从 int 转换为字符串。我试图设置为 int 但这也不起作用。有两个到期变量,但我正在测试哪一个可以工作。
【问题讨论】:
-
" 我想知道是否可以从数据库表中获取一个值并将其分配给一个字符串变量" 多么奇怪的要求 ;-)
-
很好地调试以查看“行数据”中的内容。然后你就会明白这个信息。另外我不明白上面代码中
one_data2来自哪里 -
你的方法没有多大意义。您执行命令并检索阅读器,但您不使用它
-
你在哪里关闭连接。什么是
one_data2。为什么dueDate和lateDate一样。你为什么要访问不同行的不同列,这些行可能与不同的 ppl 在不同时间签出的不同视频有关....这太令人困惑了。 -
这太宽泛了,因为 OP 似乎没有阅读过一个 ADO.NET 教程。 (撇开assign-string-to-int问题)
标签: c# sql asp.net database variables