为什么我在文本框中得到无效的输出
本文关键字:无效 输出 文本 为什么 | 更新日期: 2023-09-27 18:13:32
文本框1、2和4的输出将以一个字符后跟空格的形式出现。
示例:如DB中的值为40,则在文本框中显示为4。
数据类型为Nchar(10)
,其中一列为int。在这两种情况下都会出现无效输出。
namespace WebApplication2
{
public partial class WebForm2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
public void SomeMethod()
{
using (var conn = new SqlConnection(
"Data Source=soniya-9393b956;Initial Catalog=tabby;Integrated Security=True;Pooling=False"))
{
conn.Open();
using (var cmd = new SqlCommand("select * from students where ID=" + textBox1.Text, conn))
using (var rdr = cmd.ExecuteReader())
while (rdr.Read())
{
TextBox1.Text = rdr["id"].ToString();
TextBox2.Text = rdr["name"].ToString();
TextBox3.Text = rdr["class"].ToString().Trim();
TextBox4.Text = rdr["roll"].ToString();
// builder.Append(rdr[0]).Append(Environment.NewLine);
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
SomeMethod();
}
}
}
Adi,在查看您发送的源和数据库模式后,看起来应该都能工作,我想知道您的连接字符串是否不正确,因为您在我们的SO聊天会话中发送的模式。当我将连接字符串更改为我的主机名和数据库名时,它按预期工作:
"数据源=YourHostName;初始目录=YourDatabaseName;集成安全=True;池=False"
您在连接字符串中列出tabby,但在您在聊天中剪切和粘贴的模式中,它声明Use [Demo]
作为数据库,这使我相信这可能是连接字符串问题。
你的字符集匹配吗?如果c#代码期望其他内容,则来自数据库的作为NCHAR存储的unicode可能会被打乱。
可能是您忘记将代码放在SqlCommand和Reader的适当括号中:
using (var cmd = new SqlCommand("select * ... " + textBox1.Text, conn))
{
using (var rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
...
}
}
}