Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.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_C# - Fatal编程技术网

C# 如何在不复制/粘贴代码块的情况下重用逻辑-C

C# 如何在不复制/粘贴代码块的情况下重用逻辑-C,c#,C#,我的项目多次重用下面的代码,只更改了几个变量。我注意到值会随着变化,例如****值*** if (comboBox1.Text == ***"Most recent first"***) { string dgvconn = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\n0740572\Projects\CW\CW\bin\Debug\Database1.

我的项目多次重用下面的代码,只更改了几个变量。我注意到值会随着变化,例如****值***

  if (comboBox1.Text == ***"Most recent first"***)
            {
                string dgvconn = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\n0740572\Projects\CW\CW\bin\Debug\Database1.mdf;Integrated Security=True";
                string sql = "select * from Records where UserID = @userID Order By ***Date Desc***";
                SqlConnection connection = new SqlConnection(dgvconn);
                SqlDataAdapter dataadapter = new SqlDataAdapter(sql, connection);
                dataadapter.SelectCommand.Parameters.AddWithValue("@userID", currentUserID);
                DataSet ds = new DataSet();
                connection.Open();
                dataadapter.Fill(ds, "Records");
                connection.Close();
                recordsDataGridView.DataSource = ds;
                recordsDataGridView.DataMember = "Records";
            }

我如何使用相同的逻辑,使用不同的值,而不多次复制和粘贴if语句?

听起来您想要的是:

私有void footstring matchText,字符串排序{ 如果comboBox1.Text==matchText { 字符串dgvconn=@Data Source=LocalDB\MSSQLLocalDB;AttachDbFilename=C:\Users\n0740572\Projects\CW\CW\bin\Debug\Database1.mdf;集成安全性=True; 字符串sql=从记录中选择*,其中UserID=@UserID Order By+sortBy; SqlConnection连接=新的SqlConnectiondgvconn; SQLDataAdapterDataAdapter=新的SqlDataAdaptersql,连接; dataadapter.SelectCommand.Parameters。AddWithValue@userID,currentUserID; 数据集ds=新数据集; 连接。打开; dataadapter.Fillds,记录; 连接。关闭; recordsDataGridView.DataSource=ds; recordsDataGridView.DataMember=记录; } }//福 //调用该方法 最近一次,日期描述; 最近日期; 按用户名,用户;
听起来你想要的是:

私有void footstring matchText,字符串排序{ 如果comboBox1.Text==matchText { 字符串dgvconn=@Data Source=LocalDB\MSSQLLocalDB;AttachDbFilename=C:\Users\n0740572\Projects\CW\CW\bin\Debug\Database1.mdf;集成安全性=True; 字符串sql=从记录中选择*,其中UserID=@UserID Order By+sortBy; SqlConnection连接=新的SqlConnectiondgvconn; SQLDataAdapterDataAdapter=新的SqlDataAdaptersql,连接; dataadapter.SelectCommand.Parameters。AddWithValue@userID,currentUserID; 数据集ds=新数据集; 连接。打开; dataadapter.Fillds,记录; 连接。关闭; recordsDataGridView.DataSource=ds; recordsDataGridView.DataMember=记录; } }//福 //调用该方法 最近一次,日期描述; 最近日期; 按用户名,用户;
难道你不想让它成为一个接收参数的方法吗?在你的方法中添加一些参数,并在你写**…***的地方使用它们的值。是的,听起来不错,但我不知道如何做我们也不知道,因为你没有显示足够的上下文,特别是方法签名。这可能是一个很好的起点,你不只是让它成为一个接收参数的方法吗?向你的方法中添加一些参数,并在你写**…**的地方使用它们的值。是的,听起来不错,但我不确定如何做到这一点,我们也不知道,因为你没有显示足够的上下文,特别是方法签名。这可能是一个很好的起点