using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Aptech.UI; using System.Data.SqlClient;namespace MyQQ { public partial class frminfo : Form { public frminfo() { InitializeComponent(); } private void sideBar1_Load(object sender, EventArgs e) { sbfriends.AddGroup("我的好友"); } private void frminfo_Load(object sender, EventArgs e) { frmmain f = new frmmain(); string id = f.id; DBHelper db = new DBHelper(); try { db.Conn.Open(); string sql = string.Format("select nickname from userinfo where uid ='{0}'", id); SqlCommand cmd = new SqlCommand(sql,db.Conn); SqlDataReader sdr =cmd.ExecuteReader(); while (sdr.Read()) { lalnickname.Text = sdr[0].ToString(); }
db.Conn.Open(); string sql = string.Format("select nickname from userinfo where uid ='{0}'", id); SqlCommand cmd = new SqlCommand(sql,db.Conn); var result = cmd.ExecuteScalar(); var t = result == DBNull.Value?"":result.toString(); lalnickname.text=t;
改成这样: db.Conn.Open(); string sql = string.Format("select nickname from userinfo where uid ='{0}'", id); SqlCommand cmd = new SqlCommand(sql,db.Conn); // ExecuteScalar 返回的是一个 object, // 也就是你要的那个 nickname,所以直接转成 string 就行了, // 否则 nickname 转成 int 就报错了! string nickname = cmd.ExecuteScalar() as string; lblnickname.text = nickname;
我这样写还是不对么?
db.Conn.Open();
string sql = string.Format("select nickname from userinfo where uid ='{0}'", id);
SqlCommand cmd = new SqlCommand(sql,db.Conn);
SqlDataReader sdr =cmd.ExecuteReader();
while (sdr.Read()) { lalnickname.Text = sdr.ToString();
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Aptech.UI;
using System.Data.SqlClient;namespace MyQQ
{
public partial class frminfo : Form
{
public frminfo()
{
InitializeComponent();
}
private void sideBar1_Load(object sender, EventArgs e)
{
sbfriends.AddGroup("我的好友"); } private void frminfo_Load(object sender, EventArgs e)
{
frmmain f = new frmmain();
string id = f.id;
DBHelper db = new DBHelper();
try
{
db.Conn.Open();
string sql = string.Format("select nickname from userinfo where uid ='{0}'", id);
SqlCommand cmd = new SqlCommand(sql,db.Conn);
SqlDataReader sdr =cmd.ExecuteReader();
while (sdr.Read()) { lalnickname.Text = sdr[0].ToString();
}
}
catch (Exception)
{ throw;
}
finally {
db.Conn.Close();
}
}
}
}
{
lalnickname.text=cmd.ExecuteScalar().tostring();}
你把
int t = (int)cmd.ExecuteScalar();
lalnickname.text=t.tostring();
这两句改成: lalnickname.Text = cmd.ExecuteScalar().ToString();就行了即使程序通了,也还应该加上非空的判断,如:7楼
db.Conn.Open();
string sql = string.Format("select nickname from userinfo where uid ='{0}'", id);
SqlCommand cmd = new SqlCommand(sql,db.Conn);
var result = cmd.ExecuteScalar();
var t = result == DBNull.Value?"":result.toString();
lalnickname.text=t;
改成这样:
db.Conn.Open();
string sql = string.Format("select nickname from userinfo where uid ='{0}'", id);
SqlCommand cmd = new SqlCommand(sql,db.Conn);
// ExecuteScalar 返回的是一个 object,
// 也就是你要的那个 nickname,所以直接转成 string 就行了,
// 否则 nickname 转成 int 就报错了!
string nickname = cmd.ExecuteScalar() as string;
lblnickname.text = nickname;
Lz你这里查询的是nickname字段,应该是字符串类型的吧,为何要去转为int