using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void BTQuery_Click(object sender, EventArgs e)
{
string connString;
string bookID = TBbookID.Text;
connString = "Initial Catalog=onlineBookstore;Data Source=(local);Integrated Security=SSPI;";
using (SqlConnection Con = new SqlConnection(connString))
{
Con.Open();
string sql = "select bookname,sellprice from bookinfo where bookID=@bookID";
using (SqlCommand bookinfoCommand = new SqlCommand(sql, Con))
{
bookinfoCommand.Parameters.Add("@bookID", SqlDbType.VarChar, 25);
bookinfoCommand.Parameters["@bookID"].Value = bookID;
bookinfoCommand.CommandType = CommandType.Text;
using (SqlDataReader a = bookinfoCommand.ExecuteReader())
{
try
{
while (a.Read())
{
TBbookname.Text = (string)a["bookname"];
TBsellprice.Text = (string)a["sellprice"];
}
Con.Close();
}
catch
{
Console.WriteLine("发生错误:");
}
}
}
}
}
}
TBsellprice.Text = (string)a["sellprice"];
这里打个断点debug看下这块有没有取到值,或者你数据库表里本来就是空值。
转string建议这样:
1 a["sellprice"].tostring();
延伸:
DataReader转Entity
可以使用AutoMapper工具,不要这样一个个属性赋值。
谢谢,我改成toString()结果就显示出来了
显示不出来调试一下不就晓得了
先查源数据有没有,是不是空的之类的,再查是不是类型转换有问题,再查显示控件是不是绑定错误之类的问题
数据库里有数据
打断点调试一下价格是不是为空,sql可以判断一下 nvl(sellprice,0) ,这样如果为空,显示为0,就不会出现显示空白的情况