求助C# 启动release报“路径的形式不合法",“System.ArgumentExc

文章正文
发布时间:2025-06-18 20:55

static void SyncDataOne(string url, string table, int page)
{
Console.WriteLine();

//下载文件
byte[] b = new System.Net.WebClient().DownloadData(url);
//json接口返回
string json = System.Text.Encoding.UTF8.GetString(b);
//计算hash
string md5 = utilty.Md5(json);
//获取数据集
System.Data.DataTable dataTable = utilty.JsonToDataTable(url, json, new string[] { "data", "result" });
//string md5 = dataTable.Rows.Count.ToString();

Console.Write("文件{0}已下载,包含数据{1}行。",url,dataTable.Rows.Count);
if (dataTable.Rows.Count == 0)
{
Console.Write("任务结束!");
return;
}
if (dataTable.Rows.Count < 1000)
{
Console.Write("正在检查数据量...");
using (var conn = new SqlConnection())
{
conn.ConnectionString = ConfigurationManager.AppSettings["conn"];
conn.Open();
//检查数据库md5
using (SqlCommand command = conn.CreateCommand())
{
command.CommandText = "select md5 from tb_download where url = @url and status=1";
//by于
//Console.Write(command.CommandText);

command.Parameters.AddWithValue("url", url);

object obj = command.ExecuteScalar();


//如果存在且md5相同则跳过处理。
if (obj != null && obj.ToString() == md5)
{
Console.Write("无更新数据。");
return;
}

//更新插入
command.CommandText = @"delete from tb_download where url = @url;
insert into tb_download(id,url,data,md5,rowtime,status)
values(newid(),@url,@data,@md5,getdate(),0)";
command.Parameters.AddWithValue("md5", md5);
command.Parameters.AddWithValue("data", json);
command.ExecuteNonQuery();

//删除更新数据
command.CommandText = string.Format("delete from {0} where url=@url", table);
command.ExecuteNonQuery();

//有变化的根据url更新目标表

using (System.Data.SqlClient.SqlBulkCopy bcp = new SqlBulkCopy(conn))
{

foreach (System.Data.DataColumn c in dataTable.Columns)
{

bcp.ColumnMappings.Add(c.ColumnName, c.ColumnName);
}



bcp.DestinationTableName = table;

try
{
bcp.WriteToServer(dataTable);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}

}

//更新任务状态
command.CommandText = "update tb_download set status=1 where url = @url";
command.ExecuteNonQuery();
}
//by 20200529
if (dataTable.Rows.Count == 1000)
{
Console.WriteLine("第二页");
page = 2;
if (page == 2)
{
url = url + "&page=" + page;
SyncDataOne(url, table, 2);
}
}
if (page == 2)
{
Console.Write("第二页任务结束!");
return;
}
//by end


//更新任务状态
//command.CommandText = "exec sync_done";
//command.ExecuteNonQuery();
}


Console.Write("记录已更新。");

}



改了标红的代码 就报错了.. 条数等于1000时不执行..

首页
评论
分享
Top