使用HTTP从Excel中将数据插入到SQL Server数据库中Post
我想在Excel中单击“插入”按钮时将数据插入到SQL Server数据库中。使用HTTP从Excel中将数据插入到SQL Server数据库中Post
的数据是在单元格A2和B2,这里是在Excel中后面的“插入”按钮的代码:
Dim HttpReq As New WinHttp.WinHttpRequest
HttpReq.Open "POST", "http://localhost:11121/Student/Insert/", False
HttpReq.Send "jsmith112"
这是我在VS控制器动作代码:
[HttpPost]
public ActionResult Insert(string id)
{
try
{
student.AddToStudents(id);
student.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
这似乎没有工作,任何人都可以引导我完成这个?
在此先感谢
只要改变POST到
"http://localhost:11121/Student/Insert/" + id
然后映射
routes.MapRoute(
"InsertStudent",
"Student/Insert/{id}",
new { controller = "Student", action = "Insert", id = "" }
);
,然后在你的控制器,你可以检查,如果ID是空的路线,如果没有则使新用户
此外,有时我会做这样的事情
routes.MapRoute(
"Resource",
"{resource}/{operation}/{id}",
new { controller = "Resource", action = "Index", resource = "", operation = "" id = "" }
);
然后你可以解析出这些东西是什么..
作为一个附注,如果你为你的服务制定了更多的端点,你可以考虑使用GET,POST,PUT,DELETE而不是实际上“插入”在URI中。休息。
我不认为你的控制器动作会看到在这种情况下的数据。它无法知道您发送的'jsmith112'应该对应于字符串id参数。在您的控制器操作中,使用Request.InputStream对象来获取发布的数据并将其发送到数据库中。
一个更好的方法是将它作为url编码的表单数据发送(所以post body应该是'id = jsmith112'),或者将请求改为GET(或者PUT,如果你想要正确的RESTful)并且打这个URL:
http://localhost:11121/Student/Insert/jsmith112
在这种情况下,它应该被string id参数拾取。
此外,在控制器操作内部放置一个断点以确保实际触及它,然后使用调试器验证您的Web服务是否具有所需的数据。
感谢您的帮助埃文, 所以现在我的后面 “插入” 在Excel按钮代码: 昏暗HttpReq作为新WinHttp.WinHttpRequest HttpReq.Open “POST”,“HTTP://本地主机:11121 /学生/插入/“,假 HttpReq.Send”id = jsmith112“ 如何使用Request.InputStream获取发布的数据并将其插入到数据库中? – user793468 2011-06-15 22:36:49
在这种情况下,您将它视为表单数据,因此它应该显示为Request.Form集合的成员。您可能需要使用HttpReq.SetRequestHeader来告诉它将Content-Type头设置为“application/x-www-form-urlencoded” – 2011-06-16 13:31:12
谢谢!再次。现在我可以将数据从Excel发布到ASP.NET MVC Web服务。这里是我的代码:) 分送出数据( 昏暗HttpReq为对象,URL作为字符串 设置HttpReq =的CreateObject( “MSXML2.ServerXMLHTTP”) URL =“HTTP://本地主机:11121 /学生/ POSTDATA/“ HttpReq.Open ”POST“,URL,假 HttpReq.SetRequestHeader ”内容类型“, ”应用程序/ x WWW的形式进行了urlencoded“ HttpReq.Send ”学生= jsmith112“ Debug.Print HttpReq.ResponseText End Sub 现在,我想要有一个ControllerAction“Insert”,它将在SQLServer数据库中插入张贴的数据。我需要做什么来控制这种行为? – user793468 2011-06-16 23:53:09
什么不工作?它抛出一个错误?它甚至击中了你的插入方法?失败发生在哪里? – taylonr 2011-06-15 18:44:49
您正在尝试执行HTTPPost *到* SQL Server?那甚至是犹太教? – 2011-06-15 18:47:57
他正在对ASP.NET MVC Web服务执行HTTP POST,后者又使用EF来更新数据库。 – 2011-06-15 20:38:18