0
我需要创建Web表单应用程序,它将数据从SOAP服务返回的数据集中插入到sql server 2014数据库表中。我用下面的代码:web表单从肥皂服务返回的数据集中插入数据到sql server表中
DataSet ds;
string conStr = ConfigurationManager.ConnectionStrings["myDb"].ConnectionString;
SqlConnection conn = new SqlConnection(conStr);
SqlDataAdapter adapter = new SqlDataAdapter("select * from catalog", conn);
SqlCommand insertCommand = new SqlCommand();
insertCommand.CommandText = "insert into catalog(artId, ardDesc) values(@aid, @desc)";
insertCommand.Connection = conn;
insertCommand.Parameters.Add("@aid", SqlDbType.Int);
insertCommand.Parameters.Add("@desc", SqlDbType.NVarChar);
adapter.InsertCommand = insertCommand;
servProxy.prodService author = new servProxy.prodService();
System.Security.Cryptography.X509Certificates.X509Certificate cert = new System.Security.Cryptography.X509Certificates.X509Certificate(@"D:\locCert\certName.p12", "1234");
if (cert != null)
{
author.ClientCertificates.Add(cert);
try
{
ds = author.GetProdList();
conn.Open();
cmdBuilder = new SqlCommandBuilder(adapter);
adapter.Update(ds.Tables[0]);
}
catch (Exception ex)
{
// handle error
}
finally
{
conn.Close();
}
}
else
{
// handle ...
}
当我运行的代码没有任何反应,我犯过错误的地方,但不知道在哪里。当插入断点时可以看到数据集表已成功填充,但插入到数据库中却没有成功。 我可以只将数据插入到两列中,数据集中有15列吗?数据集和db表中的列名是相同的。
谢谢史蒂夫。我尝试过但没有成功。我需要在DS表格和数据库表格上使用相同的名称吗?如何找到DS表的名称,SOAP服务不是我的,我无法控制它? – dragy
我现在看到。问题出在select语句中,当我把'SqlDataAdapter adapter = new SqlDataAdapter(“select * from [myDb]。[dbo]。[catalog]”,conn);'这是成功的。所以,'row.SetAdded();'解决了我的问题 – dragy