如何解决从.txt文件将值添加到Sql数据库中,跳过第一行
我想将数据从.txt
文件导入数据库。问题是,我不需要.txt
文件的第一行和第一列。如何跳过它们?数据用“;”分隔。
以下是我尝试的代码-
private void txtinsert ()
{
string constr = (@"Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename = C:\Users\szabo\Desktop\Programozas\C#\Etelek (2016)\Start\Start\GOOD_FOOD.mdf; Integrated Security = True; Connect Timeout = 30");
SqlConnection con = new SqlConnection(constr);
StreamReader sr = new StreamReader(Application.StartupPath + @"\..\..\meniu.txt");
string sir;
char[] split = {';'};
con.Open();
SqlCommand cmd = new SqlCommand();
while ((sir = sr.ReadLine()) != null)
{
string[] siruri = sir.Split(split);
cmd = new SqlCommand("INSERT INTO Meniu (id_produs) VALUES (@id_produs)",con);
cmd.Parameters.AddWithValue("@id_produs",siruri[0].Trim());
cmd.ExecuteNonQuery();
}
}
解决方法
您可以使用变量来指示不需要的行,并且知道要处理多少行
private void txtinsert ()
{
string constr = (@"Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename = C:\Users\szabo\Desktop\Programozas\C#\Etelek (2016)\Start\Start\GOOD_FOOD.mdf; Integrated Security = True; Connect Timeout = 30");
SqlConnection con = new SqlConnection(constr);
StreamReader sr = new StreamReader(Application.StartupPath + @"\..\..\meniu.txt");
string sir;
char[] split = {';'};
int RowNum = 0;
con.Open();
SqlCommand cmd = new SqlCommand();
while ((sir = sr.ReadLine()) != null)
{
if (RowNum > 0) {
string[] siruri = sir.Split(split);
cmd = new SqlCommand("INSERT INTO Meniu (id_produs) VALUES (@id_produs)",con);
cmd.Parameters.AddWithValue("@id_produs",siruri[0].Trim());
cmd.ExecuteNonQuery();
}
RowNum +=1;
}
}
,
您可以阅读while
循环之外的第一行。
sir = sr.ReadLine();
while ((sir = sr.ReadLine()) != null)
{
string[] siruri = sir.Split(split);
cmd = new SqlCommand("INSERT INTO Meniu (id_produs) VALUES (@id_produs)",con);
cmd.Parameters.AddWithValue("@id_produs",siruri[0].Trim());
cmd.ExecuteNonQuery();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。