使用HTTP Post从Excel中插入SQL Server数据库中的数据
我想在Excel中单击“插入”按钮时将数据插入SQL Server数据库。
数据在单元格A2和B2中,这里是excel中“插入”按钮背后的代码:
Dim HttpReq As New WinHttp.WinHttpRequest HttpReq.Open "POST", "http://localhost:11121/Student/Insert/", False HttpReq.Send "jsmith112"
这是我在VS中的Controller操作的代码:
[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中实际使用“插入”。 rest。
在这种情况下,我认为您的控制器操作不会看到数据。 它无法知道您发送的’jsmith112’应该对应于字符串id参数。 在控制器操作内部,使用Request.InputStream对象来获取已发布的数据并将其发送到数据库中。
更好的方法是将其作为url编码的表单数据发送(所以post body将是’id = jsmith112’),或者将请求更改为GET(或PUT,如果你想正确RESTful)并点击此URL:
http://localhost:11121/Student/Insert/jsmith112
在这种情况下,它应该由字符串id参数拾取。
此外,在控制器操作中放置一个断点以确保您实际上正在命中它,然后使用调试器来validation您的Web服务是否具有所需的数据。