c#批量插入却没有数据,

iceboo 2011-07-04 09:28:31
c#写的批量插入,写入的正确的记录条数,但是每一条记录里的字段都是空的(NULL)。
代码如下

using (MySqlConnection conn = new MySqlConnection(connectionString))
{
conn.Open();
MySqlDataAdapter sd = new MySqlDataAdapter();
sd.SelectCommand = new MySqlCommand("select url_link,url_name from urltest where 1=0", conn);
sd.InsertCommand = new MySqlCommand("insert into urltestt (url_link,url_name) "
+ " values (url_link,url_name);", conn);
sd.InsertCommand.Parameters.Add("@url_link", MySqlDbType.VarChar, 255, "urladd");
sd.InsertCommand.Parameters.Add("@url_name", MySqlDbType.VarChar, 255, "urlname");
sd.InsertCommand.UpdatedRowSource = UpdateRowSource.None;
sd.UpdateBatchSize = 0;
DataSet dataset = new DataSet();
sd.Fill(dataset);

Regex reg = new Regex(@"(?is)<a[^>]*?href=(['""]?)(?<url>[^'""\s>]+)\1[^>]*>(?<text>.*?)</a>");//正则表达式取得连接和标题
Regex regTag = new Regex(@"<[^>]*>");
MatchCollection mc = reg.Matches(htmltext);//htmltext为获得的网页源码
foreach (Match m in mc)
{
string urladd = GetAbsolutePath(urllink, m.Groups["url"].Value);//GetAbsolutePath函数是相对地址转换成绝对地址
string urlname = regTag.Replace(m.Groups["text"].Value.Trim(), "");
object[] row = {urladd,urlname};
this.richTextBox1.Text += row[0].ToString();
dataset.Tables[0].Rows.Add(row);
}



sd.Update(dataset.Tables[0]);
this.label1.Text = dataset.Tables[0].Rows[0][0].ToString()+"------ " + dataset.Tables[0].Rows[0][1].ToString();
//因为一直插入的是空数据,所以在这个让dataset.tables[0]里第一条数据显示,结果是符合要求的正常数据。
dataset.Tables[0].Clear();
sd.Dispose();
dataset.Dispose();
conn.Close();
}
...全文
98 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
iceboo 2011-07-05
  • 打赏
  • 举报
回复
知道问题所在了,sd.InsertCommand.Parameters.Add("@url_link", MySqlDbType.VarChar, 255, "urladd");
应该是
sd.InsertCommand.Parameters.Add("@url_link", MySqlDbType.VarChar, 255, "url_link");
iceboo 2011-07-04
  • 打赏
  • 举报
回复
加入
MySqlCommandBuilder cb = new MySqlCommandBuilder(sd);
sd.InsertCommand = cb.GetInsertCommand();
依然不能解决问题,实际上,sd.Update(dataset.Tables[0]);是正常的执行了的,只是里面的数据有问题
dalmeeme 2011-07-04
  • 打赏
  • 举报
回复
更新前创建命令生成器:SqlCommandBuilder cb=new SqlCommandBuilder(sd);

110,546

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧