小编Ste*_*e W的帖子

将Varchar列转换为Datetime格式 - SQL Server

我有一个从CSV导入的数据表,如下所示:

FirstTimeTaken      LatestTimeTaken     Market                  Outcome         Odds    NumberOfBets    VolumeMatched   InPlay
03/08/2013 15:30:14 03/08/2013 15:32:28 Over/Under 3.5 Goals    Over 3.5 Goals  5       10              118             1
03/08/2013 14:26:40 03/08/2013 14:29:43 Correct Score           0 - 0           7       12              279             1
03/08/2013 15:15:34 03/08/2013 15:27:39 Match Odds              Barnsley        110     7               9               1
28/07/2013 16:57:26 29/07/2013 21:35:55 Match Odds              Barnsley        3       9               35              0
Run Code Online (Sandbox Code Playgroud)

我不得不以varchar格式导入前两列,因为我在尝试导入为datetime时遇到错误.现在我有一个表中的数据,我需要将列格式从Varchar转换为Datetime.我试过了:

ALTER TABLE #CSVTest_Data
ALTER COLUMN FirstTimeTaken DATETIME
ALTER TABLE #CSVTest_Data
ALTER COLUMN LatestTimeTaken DATETIME
Run Code Online (Sandbox Code Playgroud)

这会导致错误:'将varchar数据类型转换为日期时间数据类型会导致超出范围的值'.我知道删除最后一行数据可以解决问题,所以我怀疑系统认为日期格式是MM/DD/YYYY,而实际上是DD/MM/YYYY.以下查询工作正常:

SELECT convert(VARCHAR(50),FirstTimeTaken,105) from #CSVTest_Data 
SELECT convert(VARCHAR(50),LatestTimeTaken,105) …
Run Code Online (Sandbox Code Playgroud)

sql sql-server datetime

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

在文件扩展名C#之前将字符串插入文件路径字符串

我有一个定义文件路径的字符串:

string duplicateFilePath = D:\User\Documents\processed\duplicate_files\file1.jpg;
Run Code Online (Sandbox Code Playgroud)

我要将一个文件移动到这个位置,但有时候一个名字相同的文件都准备好了.在这种情况下,我想区分文件名.我有每个文件的crc值,所以我认为可能很好用于确保单个文件名.我可以创建:

string duplicateFilePathWithCrc = duplicateFilePath + "(" + crcValue + ")";
Run Code Online (Sandbox Code Playgroud)

但这给了:

D:\User\Documents\processed\duplicate_files\file1.jpg(crcvalue);
Run Code Online (Sandbox Code Playgroud)

我需要:

D:\User\Documents\processed\duplicate_files\file1(crcvalue).jpg;
Run Code Online (Sandbox Code Playgroud)

如何在文件扩展名之前将crcvalue放入字符串中,请记住文件路径中可能还有其他.文件扩展名有所不同?

c#

9
推荐指数
2
解决办法
8225
查看次数

后台工作者ReportProgress没有开火

我是第一次成立背景工作者.它主要是在代码运行时工作,我的停止/取消按钮正在工作.但是,我也在尝试报告更新进度条的进度,但我根本无法解决这个问题.

我从点击按钮启动代码,运行此代码:

backgroundWorker1.WorkerSupportsCancellation = true;
backgroundWorker1.WorkerReportsProgress = true;
backgroundWorker1.RunWorkerAsync();//this invokes the DoWork event 
Run Code Online (Sandbox Code Playgroud)

我的Do_Work方法:

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker worker = sender as BackgroundWorker;

            int j = 0;// Count cumulative imported files
            int countDupFiles = 0;// Count number of previously imported csv files
            int countImportedFiles = 0;// Count imported files


            foreach (string folderPath in csvDirList)
            {
                string[] csvFileNames = Directory.GetFiles(@folderPath, "*.csv");
                frmImportCsvData.replaceAll(csvFileNames, folderPath + "\\", "");

                for (int i = 0; i < csvFileNames.Length; i++, j++)
                { …
Run Code Online (Sandbox Code Playgroud)

c# backgroundworker

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

检查 unordered_set 是否包含其他 unordered_set 中的所有元素 - C++

我是 C++ 新手,被要求将 Java 程序转换为 C++。我正在尝试编写一种方法来检查 unordered_set 中的所有元素是否存在于另一个 unordered_set 中。我发现下面的示例使用 hash_set,但 hash_set 已弃用,建议现在使用 unordered_set。

// returns true if one contains all elements in two
bool SpecSet::containsAll(hash_set<Species*> one, hash_set<Species*> two) {
   sort(one.begin(), one.end());
   sort(two.begin(), two.end());
   return includes(one.begin(), one.end(), two.begin(), two.end());
}
Run Code Online (Sandbox Code Playgroud)

所以我需要一种使用 unordered_set 来做到这一点的方法。排序不适用于无序集,并且查找速度很重要,因此我不想使用有序集。

bool SpecSet::containsAll(unordered_set<Species*> one, unordered_set<Species*> two) {

   return ?;
}
Run Code Online (Sandbox Code Playgroud)

我真的很感谢您提供一些帮助来有效地做到这一点。

编辑:我想这会起作用。看来除了一分为二循环之外,没有更有效的方法了。

bool SpecSet::containsAll(unordered_set<Species*> one, unordered_set<Species*> two) {
   if(two.size() > one.size())
   {
      return false;
   }

   for(Species *species : two)
   {
      if(one.find(species) == one.end())
      {
         return false;
      }
   } …
Run Code Online (Sandbox Code Playgroud)

c++ unordered-set

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

运行SQL命令并获取消息

我正在开发一个项目,我希望能够将命令发送到SQL Server并运行查询.我已成功使用Joel的非常好的教程将查询返回到列表框: 创建数据库查询METHOD

我现在正在尝试调整它来执行一些命令,然后运行查询以检查命令是否有效.我的查询失败,因为我认为这些命令不起作用.

目前我发送这个:

     MySqlCommand("CREATE TABLE #CSVTest_Data" +
                  "(FirstTimeTaken DATETIME," +
                  "LatestTimeTaken DATETIME," +
                  "Market VARCHAR(50)," +
                  "Outcome VARCHAR(50),"+
                  "Odds DECIMAL(18,2)," +
                  "NumberOfBets INT," +
                  "VolumeMatched DECIMAL(18,2),"+
                  "InPlay TINYINT)");
Run Code Online (Sandbox Code Playgroud)

进入:

    private void MySqlCommand(string sql)
    {
        int numberOfRecords;
        //string result;
        using (var connection = GetConnection())
        using (var command = new SqlCommand(sql, connection))
        {
            connection.Open();
            numberOfRecords = command.ExecuteNonQuery();
        }
        MessageBox.Show(numberOfRecords.ToString());
    }
Run Code Online (Sandbox Code Playgroud)

我的理解是ExecuteNonQuery返回受影响的行数的整数.我的消息框显示值-1.在SQL Server中运行相同的命令将返回"命令已成功完成".如果有人能告诉我我的MySqlCommand方法是否正常以及如何通过运行该函数返回输出的SQL Server消息,我将不胜感激.

.net c# sql sql-server

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

使用.Except,不区分大小写C#

我正在研究一个读取2个csv文件的项目:

var myFullCsv = ReadFile(myFullCsvFilePath);
var masterCsv = ReadFile(csvFilePath);
Run Code Online (Sandbox Code Playgroud)

然后创建一个新的var,其中包含myFullCsv中存在的额外行,但不包含主Csv.代码很棒,因为它简单:

var extraFilesCsv = myFullCsv.Except(masterCsv);
Run Code Online (Sandbox Code Playgroud)

读入的csv文件包含如下数据:

c01.jpg,95182,24f77a1e,\Folder1\FolderA\,
c02.jpg,131088,c17b1f13,\Folder1\FolderA\,
c03.jpg,129485,ddc964ec,\Folder1\FolderA\,
c04.jpg,100999,930ee633,\Folder1\FolderA\,
c05.jpg,101638,b89f1f28,\Folder1\FolderA\,
Run Code Online (Sandbox Code Playgroud)

但是,我刚刚发现每个文件中某些字符不匹配的情况.例如(JPG in caps):

c01.JPG,95182,24f77a1e,\Folder1\FolderA\,
Run Code Online (Sandbox Code Playgroud)

如果数据是这样的,那么它不包含在extraFilesCsv中,但我需要它.任何人都可以告诉我如何使这段代码对文本的情况不敏感?

编辑:对不起,我忘了ReadFile不是标准命令.这是代码:

public static IEnumerable<string> ReadFile(string path)
        {
            string line;

            using (var reader = File.OpenText(path))
                while ((line = reader.ReadLine()) != null)
                    yield return line;
        }
Run Code Online (Sandbox Code Playgroud)

c#

0
推荐指数
1
解决办法
469
查看次数

标签 统计

c# ×4

sql ×2

sql-server ×2

.net ×1

backgroundworker ×1

c++ ×1

datetime ×1

unordered-set ×1