小编Kyl*_*Ren的帖子

在SQL Server中迭代字符串列表?

如何在T-SQL中访问列表中的值?

我有一个循环的SQL语句,并计算值在特定列中出现的次数Table_1.然后它将所需的值插入到它们的列中,Table_2或者如果该行不存在,它会添加一个新行并添加必要的数据.

我确切地创建了列表或表,

DECLARE @MyList TABLE (Value NVARCHAR(50))
INSERT INTO @MyList VALUES ('Data1')
INSERT INTO @MyList VALUES ('Data2')
INSERT INTO @MyList VALUES ('Data3')
INSERT INTO @MyList VALUES ('Data4')
INSERT INTO @MyList VALUES ('Data5')
INSERT INTO @MyList VALUES ('Data6')
INSERT INTO @MyList VALUES ('Data7')
INSERT INTO @MyList VALUES ('Data8')
Run Code Online (Sandbox Code Playgroud)

该语句工作正常,但我有所有硬编码,我想添加一些动态数据插入,所以我创建了一个值列表(字符串).现在我无法按照我的方式访问这些值.

这是整个陈述,

DECLARE @cnt INT = 1;
DECLARE @MyList TABLE (Value NVARCHAR(50))
INSERT INTO @MyList VALUES ('Data1')
INSERT INTO @MyList VALUES ('Data2')
INSERT INTO @MyList VALUES ('Data3')
INSERT …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

6
推荐指数
1
解决办法
3万
查看次数

如何从LINQ获取IEnumerable <Foo>而不是IEnumerable <string>?

我被困在LINQ查询中,我试图从SQL Table使用中返回列表记录EntityFramework 6,而不是获取该列表,我最终得到一个IEnumerable<string[]>.

这就是我的目标IEnumerable<string[]>.我有一个columntable需要被拆分,然后我测试,以查看是否list包含这些字符串:表列中的值columnOne可以是这样"a-b"还是"b-c"等,因此使用这种需要s.columnOne.Split('-')

list<string> checkList = new list<string>();
checkList.add("a")
checkList.add("b")
checkList.add("c")

List<Foo> fooList = dbContext.Foos.ToList();

IEnumerable<string[]> items = fooList.Select(s => s.columnOne.Split('-'));

var result = items.SelectMany(x => x)
                  .Where(s => checkList.Contains(s)).ToList();
Run Code Online (Sandbox Code Playgroud)

上面的工作应该如此,但最后它返回一个列表string,这不是我需要的.

我试过这个:

List<Foo> fooList = dbContext.Foos.ToList();

var test = fooList.Where(s => s.columnOne.Split('-'));
Run Code Online (Sandbox Code Playgroud)

这就是我遇到错误的地方,因为我最终会尝试返回一个列表<Foo>,而不是<string>

现在我知道该Where子句需要返回一个boolfooList.Where(s => s.columnOne == "someString"); …

c# linq entity-framework

6
推荐指数
1
解决办法
153
查看次数

如何识别点击了哪个按钮?(MVVM)

继续沿着MVVM的路径前进,我来到了按钮命令.经过相当多的反复试验后,我终于得到了一个Button_Click使用命令的工作示例ICommand.

我的问题是,现在我有一个通用事件,我无法获得点击哪个按钮来应用一些逻辑.在我的例子中,我没有使用任何可以获取Sender信息的地方.通常如下所示RoutedEventArgs:

Button button = (Button)sender;
Run Code Online (Sandbox Code Playgroud)

所以这就是我到目前为止所拥有的.

ICommand类:

public class CommandHandler : ICommand
{
    private Action _action;
    private bool _canExecute;
    public CommandHandler(Action action, bool canExecute)
    {
        _action = action;
        _canExecute = canExecute;
    }

    public bool CanExecute(object parameter)
    {
        return _canExecute;
    }

    public event EventHandler CanExecuteChanged;

    public void Execute(object parameter)
    {
        _action();
    }
}
Run Code Online (Sandbox Code Playgroud)

以及执行操作的代码:

private ICommand _clickCommand;
public ICommand ClickCommand => _clickCommand ?? (_clickCommand = new CommandHandler(MyAction, _canExecute));

public ViewModelBase() …
Run Code Online (Sandbox Code Playgroud)

c# wpf button mvvm

5
推荐指数
1
解决办法
2024
查看次数

如何使用 MVVM 更新 Datagrid?

我已经搜索并来到了一堵砖墙。关于如何做到这一点似乎有很多问题和答案,但我找不到任何我可以具体实施的东西(显然我的理解有问题)。

我希望能够更新几个 Datagrids 并脱离你不应该命名你的控件的前提,我不知道如何让它工作。

所以到目前为止我能够想出的是使用System.Windows.Interactivity程序集。但我不知道如何实现背后的代码(我当然可以展示我试图让它工作的所有代码,但不幸的是它只会使帖子变得混乱,所以我不包括它)。我尽可能多地研究实施ICommand.

所以我有 XAML:

<i:Interaction.Triggers>
     <i:EventTrigger EventName="RowEditEnding">
         <i:InvokeCommandAction Command="{Binding CanExecuteChanged}" />
     </i:EventTrigger>
</i:Interaction.Triggers>
Run Code Online (Sandbox Code Playgroud)

但我似乎无法获得背后的代码,以便能够在RowEditEnding完成时通知并能够使用新数据更新数据库。

因此,考虑到 MVVM 模型,我该如何触发事件以便更新数据库?

c# wpf xaml datagrid mvvm

4
推荐指数
1
解决办法
5669
查看次数

不要在linq C#中取得最新记录

我们都知道,它Skip()可以忽略收集开始时不需要的记录。

但是Skip()在收集结束时是否有记录的方法?

您如何不获取集合中的最后一条记录?

还是您必须通过 Take()

即下面的代码,

var collection = MyCollection

var listCount = collection.Count();

var takeList = collection.Take(listCount - 1);
Run Code Online (Sandbox Code Playgroud)

这是排除集合中最后一条记录的唯一方法吗?

c# linq

4
推荐指数
1
解决办法
280
查看次数

LINQ查询到ObservableCollection?

将LINQ结果转换为ObservableCollection

Jon Skeet在这个问题上给出了一个很好的答案,但我仍然不能自己做.

对于课程来说仍然是新手,所以我仍然处于学习阶段.

我已经创建了一个LINQ to SQL类,显然有很多自动生成的代码.这是添加类时生成的类的片段,与此问题相关.这显然与命名的DataBase表相关联Staff_Time_TBL.

public partial class Staff_Time_TBL : INotifyPropertyChanging, INotifyPropertyChanged
    {

        private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);

        private long _ID;

        private System.Nullable<System.DateTime> _Date_Data;
    }
Run Code Online (Sandbox Code Playgroud)

我有一个工作类,它可以将我需要的数据输入到Datagrid中,它从两个日期之间以及具有唯一员工编号的工作人员中提取数据.这工作正常,但是当数据直接更新到数据库时,界面中的数据不会更新,请参阅此问题.

internal class DatabaseQueries
    {
        public static IEnumerable<Staff_Time_TBL> MainTable(DatabaseDataContext database, DateTime fromDate, DateTime toDate, int employeeNumber)
        {
            return database.Staff_Time_TBLs.Where(staff =>
                staff.Date_Data > fromDate &&
                staff.Date_Data < toDate &&
                staff.Staff_No == employeeNumber);
        }
Run Code Online (Sandbox Code Playgroud)

这个答案中的代码是可以理解的,但我不知道foo需要什么?

var linqResults = foos.Where(f => f.Name == "Widget");

var observable …
Run Code Online (Sandbox Code Playgroud)

c# linq

3
推荐指数
1
解决办法
6932
查看次数

为什么反射比对象初始化更快?

  1. 对不起,非计算机科学术语(自学)
  2. 抱歉,术语不正确(任何愿意编辑的人,请做(自学))

我对所搜索的术语的知识有限,因此我进行了尽可能多的搜索,但是我找不到并回答我所追求的问题。

我很惊讶地发现,用数据填充对象Reflection比使用更快object Initialization

为此,我制作了一个测试控制台应用程序。首先是测试班

class TestClass
    {
        public string PropertyOne { get; set; }
        public string PropertyTwo { get; set; }
        public string PropertyThree { get; set; }
        public string PropertyFour { get; set; }
        public string PropertyFive { get; set; }
        public string PropertySix { get; set; }
        public string PropertySeven { get; set; }
        public string PropertyEight { get; set; }
        public string PropertyNine { get; set; }
        public string PropertyTen { …
Run Code Online (Sandbox Code Playgroud)

c# reflection

3
推荐指数
2
解决办法
77
查看次数

比较没有日期的时间?

我在比较时间时遇到问题。

根据我的研究,它很可能是由于没有约会的时间。

我的代码,这dateTime从数据库中获取一个值。

var getDateTime = sql.Staff_Time_TBLs.Where(p => p.Staff_No ==
      SelectedEmployee.Key && p.Date_Data == day).Select(p => p.Time_Data_1).ToList();
DateTime dateTimeGet = Convert.ToDateTime(getDateTime);
Run Code Online (Sandbox Code Playgroud)

dateTimeGet 返回这样的值 "2012/12/12 15:03:00.000"

然后我声明变量来保存时间。

TimeSpan startCompare = TimeSpan.Parse("15:00");
TimeSpan endCompare = TimeSpan.Parse("21:00");
Run Code Online (Sandbox Code Playgroud)

然后比较值比较日期时间

if ((endCompare > dateTimeGet) && (startCompare < dateTimeGet))
     {
        //match found
     }
Run Code Online (Sandbox Code Playgroud)

我收到编译错误,

operands cannot be given to to type timespan and datetime
Run Code Online (Sandbox Code Playgroud)

在这种情况下我如何比较时间?

c#

2
推荐指数
1
解决办法
3720
查看次数

为每个查询创建新的SQL连接是否有优势?

我正在尝试设计一个连接到SQL数据库的高效应用程序,我想知道为每个SQL查询创建SQL连接的优点/缺点是什么,例如,像下面的代码一样,创建一个连接集一次的类你可以在课堂上需要的时候给它打电话.

class SqlQuery
    {
        SqlConnection Connection = new SqlConnection(@myConnectionString);
          public void fillInfoData()
          {
              SqlCommand updateCommand = new SqlCommand(
                    @"my sql query", Connection);
              Connection.Open();
              updateCommand.ExecuteNonQuery();
              Connection.Close();
          }
    }
Run Code Online (Sandbox Code Playgroud)

或者您应该为每个新查询创建一个新连接?

c# sql sql-server

2
推荐指数
1
解决办法
399
查看次数

从 C# 运行宏

我知道您可以 Microsoft.Office.Interop.Excel;在 C# 程序中使用 VBA 命令。

我有接近 10,000 行代码的 VBA,将其转换为 C# 兼容命令是不现实的。它创建一个工作簿并执行数据操作和格式化以根据用户请求进行打印。

有没有办法在 C# 中存储宏并创建一个工作簿,然后我可以按原样运行宏?

c# excel vba

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

c# ×9

linq ×3

mvvm ×2

sql ×2

sql-server ×2

wpf ×2

button ×1

datagrid ×1

entity-framework ×1

excel ×1

reflection ×1

t-sql ×1

vba ×1

xaml ×1