我使用某个方法体来调用存储过程,使用以下示例代码:
public void StoredProcedureThatIsBeingcalled(int variable_1, int variable_2, out DataSet ds)
{
using (SqlConnection con = new SqlConnection(DatabaseConnectionString))
{
ds = new DataSet("DsToGoOut");
using (SqlCommand cmd = new SqlCommand("StoredProcedureThatIsBeingcalled", DbConn.objConn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@variable_1", variable_1));
cmd.Parameters.Add(new SqlParameter("@variable_2", variable_2));
try
{
con.Open();
SqlDataAdapter objDataAdapter = new SqlDataAdapter();
objDataAdapter.SelectCommand = cmd;
objDataAdapter.Fill(ds);
con.Close();
}
catch (Exception ex)
{
//sql_log_err
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
有什么问题我上面的大部分代码都在我的cs文件中一次又一次地重复我调用的每个不同的过程.
显然,我可以清除它,并使用过程名称作为变量调用一个函数,但是如何为不同的过程提供不同数量的参数(具有不同的数据类型 - int,字符串bool - 从不其他任何东西)我用 ?
我可以使用不同数量的参数(0-10)来实现几个不同的功能,但我觉得有更好的方法吗?
我有一个类,为我的字符串添加了一些功能.
public static class StringExtensions
{
public static string formString(this string value)
{
value = value.Replace("\t", " ");
value = value.Trim();
return value;
}
}
Run Code Online (Sandbox Code Playgroud)
类似于调用.ToString()时出现的内容:
我将通过设计糟糕的逗号分隔数据.在大多数情况下,每个"部分"用逗号正确分隔:
string old_data = data_for_section_1,data_for_section_2,IDs|in|section|3
第4节的情况有所不同,第4节的数据是"逗号空白"分隔:
string old_data = data_for_section_1,data_for_section_2,IDs|in|section|3,section_4_part_1, section_4_part_2, section_4_part_3,data_for_section_5
是否有可能获得并将5个部分提供给一个数组,而不是最终在该数组中有7个项目?
如何更新表中的列以遵循特定模式?目前我的DesiredResultAfterUpdate是空的,我想设置它,以便ID 1,2,3为1,2,3.那么下一组ID(ID4,5,6和7,8,9等等)将是1,2,3?
ID DesiredResultAfterUpdate Name
1 1 My First Row
2 2 My 2nd Row
3 3 My Third Row
4 1 My Forth Row
5 2 My Fifth Row
6 3 My Next Row
7 1 My 7th Row
8 2 etc
9 3 etc
Run Code Online (Sandbox Code Playgroud)
到目前为止我试过了
UPDATE coins set coin_Row = 1
UPDATE coins set coin_Row = 2 where coin_SortOrder%2=0
UPDATE coins set coin_Row = 3 where coin_SortOrder%3=0
Run Code Online (Sandbox Code Playgroud)
哪个只适用于每个第3项......(令人震惊)