求助:标量变量未声明 dataset()

dirkyu 2015-03-20 06:51:09
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 System.Data.SqlClient;

namespace datagridview
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
string flagpack = "3";
SqlConnection conn = new SqlConnection(@"server = 192.168.1.159;database =testdb;UID=sa;PWD=062455xzy");
string sqlPack = "select top 1* from dbo.Table_1 Where flag=@GrdFlag order by id desc";
SqlCommand cmd = new SqlCommand(sqlPack, conn);

SqlParameter parameterGridFlag = new SqlParameter("@GrdFlag", SqlDbType.NVarChar);
parameterGridFlag.Value = flagpack;
cmd.Parameters.Add(parameterGridFlag);

try
{
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(sqlPack, conn);
DataSet ds = new DataSet();
da.Fill(ds);
conn.Close();

////查询的数据显示到datagridview
string grdPackTime = ds.Tables[0].Rows[0]["functime"].ToString();
string grdBatch = ds.Tables[0].Rows[0]["batch"].ToString();
string grdSoftWare = ds.Tables[0].Rows[0]["software"].ToString();
string grdClientName = ds.Tables[0].Rows[0]["clientname"].ToString();
string grdSerialNo = ds.Tables[0].Rows[0]["serialno"].ToString();
string grdImei = ds.Tables[0].Rows[0]["imei"].ToString();
string grdModuleSn = ds.Tables[0].Rows[0]["modulesn"].ToString();
string grdflag = ds.Tables[0].Rows[0]["flag"].ToString();
string grdBox = ds.Tables[0].Rows[0]["box"].ToString();
string[] row = { grdPackTime, grdBatch, grdSoftWare, grdClientName, grdSerialNo, grdImei, grdModuleSn, grdflag, grdBox };

////给dataGridViewScan控件添加数据
dataGridViewPack.Rows.Add(row);
////datagridview显示排序-降序
this.dataGridViewPack.Sort(this.dataGridViewPack.Columns[0], ListSortDirection.Descending);
}
catch(SqlException ex)
{
MessageBox.Show(ex.Message + ex.StackTrace, "Exception Details");
conn.Close();
}
finally
{
conn.Close();
}
}
}
}


简单的功能,就是把MSsql查到的数据输入到datagridview显示,但是一直提示“必须声明标量变量@GrdFlag”,可以已经声明了啊,百思不解啊。谢谢
...全文
111 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dirkyu 2015-03-20
  • 打赏
  • 举报
回复
感谢两位,可惜分只能给一人,不好意思。
EdsionWang 2015-03-20
  • 打赏
  • 举报
回复
引用 2 楼 dirkyu 的回复:
搞定,谢谢,请问你的写法和我的有什么不同啊?
自己去查看下SqlDataAdapter的构造方法。 你使用了参数化的查询,把参数添加到了sqlcommand中。但是构造sqldataadapter时却只传了查询语句(该语句中包含参数),却没添加参数。
蝶恋花雨 2015-03-20
  • 打赏
  • 举报
回复
SqlDataAdapter da = new SqlDataAdapter(sqlPack, conn); =》这个是直接查询了。但是你用了变量。 而变量是在SqlParameter 里面定义并赋值。所以你直接使用 SqlDataAdapter da = new SqlDataAdapter(sqlPack, conn); 所以会报标量变量未声明
dirkyu 2015-03-20
  • 打赏
  • 举报
回复
搞定,谢谢,请问你的写法和我的有什么不同啊?
EdsionWang 2015-03-20
  • 打赏
  • 举报
回复

  SqlDataAdapter da = new SqlDataAdapter(sqlPack, conn);
这一句改为
 ==> 
  SqlDataAdapter da = new SqlDataAdapter(cmd);

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧