C# 使用C将文本文件中特定行的数据加载到SQL中#
我的问题简单而复杂。我是一名SQL DB开发人员,现在必须创建一个包含C#代码的SSIS包。代码需要做一些事情,但我遇到问题的组件是:C# 使用C将文本文件中特定行的数据加载到SQL中#,c#,sql,text-files,C#,Sql,Text Files,我的问题简单而复杂。我是一名SQL DB开发人员,现在必须创建一个包含C#代码的SSIS包。代码需要做一些事情,但我遇到问题的组件是: 读取文本文件中的最后一行,并将该行插入SQL表的列中 从第二行到最后第二行的每个明细行都需要插入到另一个表中 我对C#比较陌生,不知道该怎么做。有人能告诉我正确的方向吗?这个文件有多大?如果你能把这些都读入记忆,生活就会简单得多: string[]lines=File.ReadAllLines(“File.txt”); //可以使用lines[lines.Len
我对C#比较陌生,不知道该怎么做。有人能告诉我正确的方向吗?这个文件有多大?如果你能把这些都读入记忆,生活就会简单得多:
string[]lines=File.ReadAllLines(“File.txt”);
//可以使用lines[lines.Length-1],但LINQ使它更简单。。。
字符串lastLine=lines.Last();
IEnumerable otherLines=lines.Skip(1).Take(lines.Length-2);
这就是“从文件中获取数据”部分。对于数据库部分,您没有真正为我们提供足够的信息来帮助您。您需要确定如何进行数据库访问(直接ADO.NET、LINQ等),然后阅读有关该主题的教程。附近有很多。试试这个,在网上为你找到它
public static String ReadLastLine(string path)
{
return ReadLastLine(path, Encoding.ASCII, "\n");
}
public static String ReadLastLine(string path, Encoding encoding, string newline)
{
int charsize = encoding.GetByteCount("\n");
byte[] buffer = encoding.GetBytes(newline);
using (FileStream stream = new FileStream(path, FileMode.Open))
{
long endpos = stream.Length / charsize;
for (long pos = charsize; pos < endpos; pos += charsize)
{
stream.Seek(-pos, SeekOrigin.End);
stream.Read(buffer, 0, buffer.Length);
if (encoding.GetString(buffer) == newline)
{
buffer = new byte[stream.Length - stream.Position];
stream.Read(buffer, 0, buffer.Length);
return encoding.GetString(buffer);
}
}
}
return null;
}
公共静态字符串ReadLastLine(字符串路径)
{
返回ReadLastLine(路径,Encoding.ASCII,“\n”);
}
公共静态字符串ReadLastLine(字符串路径、编码、字符串换行)
{
int charsize=encoding.GetByteCount(“\n”);
byte[]buffer=encoding.GetBytes(换行符);
使用(FileStream-stream=newfilestream(路径,FileMode.Open))
{
long-endpos=流长度/字符大小;
用于(长pos=charsize;pos
谢谢你的帮助。这已经为我指明了正确的方向。至于我将如何访问数据库,我还不确定。我首先需要弄清楚如何提取这些数据,等等,然后我才想打破我的头脑。感谢您的快速回复!谢谢你,约翰。我一定会调查的!不,是斯图肯·斯内勒,它走得更快;)您必须连接到哪种数据库?我需要连接到SQL 2008数据库。
public static String ReadLastLine(string path)
{
return ReadLastLine(path, Encoding.ASCII, "\n");
}
public static String ReadLastLine(string path, Encoding encoding, string newline)
{
int charsize = encoding.GetByteCount("\n");
byte[] buffer = encoding.GetBytes(newline);
using (FileStream stream = new FileStream(path, FileMode.Open))
{
long endpos = stream.Length / charsize;
for (long pos = charsize; pos < endpos; pos += charsize)
{
stream.Seek(-pos, SeekOrigin.End);
stream.Read(buffer, 0, buffer.Length);
if (encoding.GetString(buffer) == newline)
{
buffer = new byte[stream.Length - stream.Position];
stream.Read(buffer, 0, buffer.Length);
return encoding.GetString(buffer);
}
}
}
return null;
}