Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中使用文本框和按钮搜索sql server数据库服务器#_C#_Asp.net_Sql Server - Fatal编程技术网

C# 在C中使用文本框和按钮搜索sql server数据库服务器#

C# 在C中使用文本框和按钮搜索sql server数据库服务器#,c#,asp.net,sql-server,C#,Asp.net,Sql Server,因此,我使用MS visual studio在c#中创建了一个应用程序,该应用程序将从sql server数据库中提取信息。 我创建了一个文本框和一个按钮来搜索我的gridview。我正在使用一个搜索多行的存储过程从我的Sql数据库中提取信息。 我的aspx.cs代码有问题。我尝试了很多不同的方法来创建一个搜索框,但还没有任何运气 这是我的搜索按钮的代码 我得到了错误- “输入字符串的格式不正确。” 此错误在cmd.ExecuteNonQuery()行上 非常感谢您的帮助,谢谢 protecte

因此,我使用MS visual studio在c#中创建了一个应用程序,该应用程序将从sql server数据库中提取信息。 我创建了一个文本框和一个按钮来搜索我的gridview。我正在使用一个搜索多行的存储过程从我的Sql数据库中提取信息。 我的aspx.cs代码有问题。我尝试了很多不同的方法来创建一个搜索框,但还没有任何运气

这是我的搜索按钮的代码

我得到了错误-

“输入字符串的格式不正确。”

此错误在
cmd.ExecuteNonQuery()行上

非常感谢您的帮助,谢谢

protected void Button_srch_invest1_Click(object sender, EventArgs e)
{
    string connectionStr = ConfigurationManager.ConnectionStrings["ORAProjectConnectionString"].ConnectionString;
    using (SqlConnection con = new SqlConnection(connectionStr))
    {
        string find = "sp_SrcProtocols";
        SqlCommand cmd = new SqlCommand(find, con);

        cmd.Parameters.Add("@ORAID", SqlDbType.Int).Value = TextBox_Srch.Text;
        cmd.Parameters.Add("@InvestLastName", SqlDbType.NVarChar).Value = TextBox_Srch.Text;
        cmd.Parameters.Add("@ManagerLastName", SqlDbType.NVarChar).Value = TextBox_Srch.Text;

        con.Open();
        cmd.ExecuteNonQuery();
        SqlDataAdapter da = new SqlDataAdapter();
        da.SelectCommand = cmd;
        DataSet ds = new DataSet();
        da.Fill(ds, "ORAID");
        da.Fill(ds, "InvestLastName");
        da.Fill(ds, "ManagerLastName");
        GridView1.DataSource = ds;
        GridView1.DataBind();

        con.Close();
    }   
}

默认情况下,
SqlCommand
需要的是查询,而不是存储过程的名称。您必须在执行命令之前设置命令类型

cmd.CommandType = CommandType.StoredProcedure;

默认情况下,
SqlCommand
需要的是查询,而不是存储过程的名称。您必须在执行命令之前设置命令类型

cmd.CommandType = CommandType.StoredProcedure;

看起来,您正在向所有3个参数传递相同的文本框值(
TextBox\u Srch.text
)。第一个参数
@ORAID
应为整数值,您可能正在传递文本。因此,它导致SQLServer出现以下错误

输入字符串的格式不正确


看起来,您正在向所有3个参数传递相同的文本框值(
TextBox\u Srch.text
)。第一个参数
@ORAID
应为整数值,您可能正在传递文本。因此,它导致SQLServer出现以下错误

输入字符串的格式不正确

这就是有效的方法(我将sql改为只接受一个参数@search)

这就是有效的方法(我将sql改为只接受一个参数@search)


您不应该调用ExecuteOnQuery。SqlDataAdapter.Fill将为您运行SelectCommand。您不应该多次调用da.Fill(),也不应该调用ExecuteOnQuery。SqlDataAdapter.Fill将为您运行SelectCommand。您不应该多次调用da.Fill()。