C# 如何在ASP.Net中执行更新SQL脚本
我有这段代码来执行ASP.Net中的存储过程(更新SP),不幸的是,当我运行代码时,记录没有更新 这是我的代码:C# 如何在ASP.Net中执行更新SQL脚本,c#,asp.net,sql,sql-server,C#,Asp.net,Sql,Sql Server,我有这段代码来执行ASP.Net中的存储过程(更新SP),不幸的是,当我运行代码时,记录没有更新 这是我的代码: using (SqlConnection sqlConnection = Connt.GetConnection(TblName)) { sqlConnection.Open(); using (SqlDataAdapter adapter = new SqlDataAdapter(SqlScript, sqlConnection))
using (SqlConnection sqlConnection = Connt.GetConnection(TblName))
{
sqlConnection.Open();
using (SqlDataAdapter adapter = new SqlDataAdapter(SqlScript, sqlConnection))
{
adapter.SelectCommand.CommandType = CommandType.StoredProcedure;
adapter.SelectCommand.Parameters.AddRange(SqlParam);
}
}
其中,SqlScript
是存储过程名称的变量,SqlParam
是参数
请帮我找出我的代码有什么问题。试试:
using (var conn = new SqlConnection(connectionString))
using (var command = new SqlCommand("ProcedureName", conn) {
CommandType = CommandType.StoredProcedure }) {
conn.Open();
command.ExecuteNonQuery();
conn.Close();
}
使用参数:
command.Parameters.Add(new SqlParameter("@ID", 123));
尝试:
使用参数:
command.Parameters.Add(new SqlParameter("@ID", 123));
嗨,你可以试试这样的
SqlConnection sqlConnection = new SqlConnection();
SqlCommand sqlCommand = new SqlCommand();
sqlConnection.ConnectionString = "Data Source=SERVERNAME;Initial Catalog=DATABASENAME;Integrated Security=True";
public void samplefunct(params object[] adparam)
{
sqlConnection.Open();
sqlCommand.Connection = sqlConnection;
sqlCommand.CommandType = CommandType.StoredProcedure;
sqlCommand.CommandText = "SPName";
sqlCommand.Parameters.Add("@param1", SqlDbType.VarChar).Value = adparam[0];
sqlCommand.Parameters.Add("@param2", SqlDbType.VarChar).Value = adparam[1];
sqlCommand.Parameters.Add("@Param3", SqlDbType.VarChar).Value = adparam[2];
sqlCommand.ExecuteNonQuery();
}
嗨,你可以试试这样的
SqlConnection sqlConnection = new SqlConnection();
SqlCommand sqlCommand = new SqlCommand();
sqlConnection.ConnectionString = "Data Source=SERVERNAME;Initial Catalog=DATABASENAME;Integrated Security=True";
public void samplefunct(params object[] adparam)
{
sqlConnection.Open();
sqlCommand.Connection = sqlConnection;
sqlCommand.CommandType = CommandType.StoredProcedure;
sqlCommand.CommandText = "SPName";
sqlCommand.Parameters.Add("@param1", SqlDbType.VarChar).Value = adparam[0];
sqlCommand.Parameters.Add("@param2", SqlDbType.VarChar).Value = adparam[1];
sqlCommand.Parameters.Add("@Param3", SqlDbType.VarChar).Value = adparam[2];
sqlCommand.ExecuteNonQuery();
}
嗨,谢谢你的回复。如何使用您给定的代码向SP添加参数。您好,谢谢您的回复。如何使用给定的代码向SP添加参数。主要问题是您有一个更新存储过程,并且正在使用DataAdapter的SelectCommand属性。构造函数还将SqlScript分配给SelectCommand。是的,这是主要错误。应改用SQLCommand。主要问题是您有一个更新存储过程,并且正在使用DataAdapter的SelectCommand属性。构造函数还将SqlScript分配给SelectCommand。是的,这是主要错误。应该改为使用SQLCommand。只需对我的代码稍作调整即可,但此代码包含您需要的功能和逻辑。干杯谢谢你的投票,希望对你有帮助lot@Angelo:回答不错+1,我这里有一个问题,您如何知道
adparam
对象数组中只有3个参数?当用户只向samplefunct
函数发送两个参数时会发生什么情况?啊,您必须发送与samplefunct(param1,param2,param3)相同的参数计数,否则会出现错误,除非您输入类似try的内容catch@Angelo:可以,但当您使用params
时,它不允许任何参数,即使在编译时,它也不会让用户知道,因此我认为在继续操作之前,最好使用.Length
属性检查参数的计数,否则当参数小于3 IMO时,它可能会导致异常。只需对我的代码进行少量调整即可,但此代码包含您需要的功能和逻辑。干杯谢谢你的投票,希望对你有帮助lot@Angelo:回答不错+1,我这里有一个问题,您如何知道adparam
对象数组中只有3个参数?当用户只向samplefunct
函数发送两个参数时会发生什么情况?啊,您必须发送与samplefunct(param1,param2,param3)相同的参数计数,否则会出现错误,除非您输入类似try的内容catch@Angelo:可以,但当您使用params
时,它不允许任何参数,即使在编译时,它也不会让用户知道,因此我认为在继续操作之前,最好使用.Length
属性检查参数的计数,否则当参数小于3时可能会导致异常。