C# 必须声明标量变量
我这里遗漏了什么?我有一个错误,必须声明标量变量@Param实际上您在cmd2中声明了参数变量,但您在适配器1中调用了ssr 试试这个C# 必须声明标量变量,c#,sql,sql-server,C#,Sql,Sql Server,我这里遗漏了什么?我有一个错误,必须声明标量变量@Param实际上您在cmd2中声明了参数变量,但您在适配器1中调用了ssr 试试这个 private void button3_Click(object sender, EventArgs e) { string ssr; SqlConnection scr = new SqlConnection(@"Data Source=USER-PC\MSSQL;Initial Catalog=Highscore;I
private void button3_Click(object sender, EventArgs e)
{
string ssr;
SqlConnection scr = new SqlConnection(@"Data Source=USER-PC\MSSQL;Initial Catalog=Highscore;Integrated Security=True");
scr.Open();
ssr = "Select Nume,Scor,DataInitiala,DataRecenta FROM Users where DataInitiala between @Param and @Param1 ";
SqlCommand cmd2 = new SqlCommand(ssr, scr);
cmd2.Parameters.AddWithValue("@Param", from.Text);
cmd2.Parameters.AddWithValue("@Param1", to.Text);
SqlDataAdapter adapter1 = new SqlDataAdapter(ssr, scr);
DataSet ds1 = new DataSet();
adapter1.Fill(ds1);
dataGridView1.DataSource = ds1.Tables[0];
dataGridView1.Refresh();
}
请参见以下查询:
private void button3_Click(object sender, EventArgs e)
{
string ssr;
SqlConnection scr = new SqlConnection(@"Data Source=USER-PC\MSSQL;Initial Catalog=Highscore;Integrated Security=True");
scr.Open();
ssr = "Select Nume,Scor,DataInitiala,DataRecenta FROM Users where DataInitiala between @Param and @Param1 ";
SqlCommand cmd2 = new SqlCommand(ssr, scr);
cmd2.Parameters.AddWithValue("@Param", from.Text);
cmd2.Parameters.AddWithValue("@Param1", to.Text);
SqlDataAdapter adapter1 = new SqlDataAdapter();
adapter1.SelectCommand = cmd2;
DataSet ds1 = new DataSet();
adapter1.Fill(ds1);
dataGridView1.DataSource = ds1.Tables[0];
dataGridView1.Refresh();
}
.Text的
值是什么?如果您处理的是日期/时间/时间戳,则该值由用户在应用程序中输入(它是一个日期)。另外,在包含到查询中之前,您应该将参数转换为正确的类型,不要只假设文本值是正确的。不过,这并不一定能解决您的问题……我在新的SqlDataAdapter(cmd2,scr)上遇到了2个错误:1.与“System.Data.SqlClient.SqlAdapter.SqlDataAdapter(string,System.Data.SqlClient.SqlConnection)”匹配的最佳重载方法具有一些无效参数。2Argument1:无法从SystemData.SqlClient.SqlCommand转换为StringCommand,而此代码可能会回答此问题,提供有关如何和/或为什么解决此问题的其他上下文将提高答案的长期价值。
private void button3_Click(object sender, EventArgs e)
{
string ssr;
SqlConnection scr = new SqlConnection(@"Data Source=USER-PC\MSSQL;Initial Catalog=Highscore;Integrated Security=True");
scr.Open();
ssr = "Select Nume,Scor,DataInitiala,DataRecenta FROM Users where DataInitiala between @Param and @Param1 ";
SqlCommand cmd2 = new SqlCommand(ssr, scr);
cmd2.Parameters.AddWithValue("@Param", from.Text);
cmd2.Parameters.AddWithValue("@Param1", to.Text);
SqlDataAdapter adapter1 = new SqlDataAdapter();
adapter1.SelectCommand = cmd2;
DataSet ds1 = new DataSet();
adapter1.Fill(ds1);
dataGridView1.DataSource = ds1.Tables[0];
dataGridView1.Refresh();
}