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