文本框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();
}
}
}
答案 0 :(得分:1)
Adi,在查看了您发送的源代码和数据库架构后,看起来它应该全部工作,我想知道您的连接字符串是否不正确,因为您在我们的SO聊天会话中发送了架构。当我将连接字符串更改为我的主机名和数据库名称时,它按预期工作:
“数据源= YourHostName ;初始目录= YourDatabaseName ;集成安全性= True;池化=假”
您在连接字符串中列出 tabby ,但在您剪切并粘贴在聊天中的架构中,它将Use [Demo]
表示为数据库,这使我相信它可能是一个连接字符串问题。
答案 1 :(得分:0)
你的字符集是否匹配?如果C#代码期待别的东西,来自存储为NCHAR的数据库的unicode可能会受到损坏。
答案 2 :(得分:-1)
可能是你忘了把你的代码放在SqlCommand和Reader的正确括号中:
using (var cmd = new SqlCommand("select * ... " + textBox1.Text, conn))
{
using (var rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
...
}
}
}