2017-01-12 41 views
1
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Newtonsoft.Json.Linq; 
using System.Data.SqlClient; 
using System.Data; 
using HttpWebRequestResponse; 

namespace JSONARECHESTRA 
{ 
    class Class1 
    { 
     static void Main() 
     { } 

     public SqlConnection con =newSqlConnection(@"server=SERVE;database=DATABASE;uid=XX;password=XXXX;MultipleActiveResultSets=True"); 
     public SqlCommand cmd; 
     public SqlDataReader dr1; 

     public void CONNECTION() 
     { 
      if (con.State == ConnectionState.Closed) 
       con.Open(); 
     } 

     public void executeNonQuery(string query) 
     { 
      CONNECTION(); 
      cmd = new SqlCommand(query, con); 
      cmd.ExecuteNonQuery(); 
     } 
    } 

    public class user 
    { 
     public void Page_Load(object sender, EventArgs e) 
     { 
      var httpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create("http:URL"); 
      httpWebRequest.ContentType = "application/json"; 
      httpWebRequest.Method = "POST"; 

      using (var streamWriter = new System.IO.StreamWriter(httpWebRequest.GetRequestStream())) 
      { 
       string json = "{\"Username\":\"DEV\"}"; 

       streamWriter.Write(json); 
       streamWriter.Flush(); 
       streamWriter.Close(); 
      } 

      var httpResponse = (System.Net.HttpWebResponse)httpWebRequest.GetResponse(); 

      using (var streamReader = new System.IO.StreamReader(httpResponse.GetResponseStream())) 
      { 
       var result = streamReader.ReadToEnd(); 
       JObject jObject = JObject.Parse(result); 
       response = jObject["Rdata"][0].ToArray(); 
       JArray array = (JArray)jObject["Rdata"]; 

       for (int i = 0; i <= 3; i++) 
       { 
        int Alert_Type = Convert.ToInt32((string)array[i]["Alert_Type"]); 
        DateTime datetime = Convert.ToDateTime((string)array[i]["Date_time"]); 
        string Location = Convert.ToString((string)array[i]["Location"]); 
        string Vehicle = Convert.ToString((string)array[i]["Vehicle"]); 
        Console.WriteLine(Vehicle); 
        Console.ReadKey(); 

        Class1 cs = new Class1(); 
        cs.CONNECTION(); 

        string insert = "INSERT INTO [DATABASE].[dbo].[TEST6] (datet) VALUES ('" + datetime + "');"; 
        cs.executeNonQuery(insert); 
        // return Page_Load; 
       } 
      } 
     } 

     public string json { get; set; } 

     public JToken[] response { get; set; } 
    } 
} 

将数据发送到SQL Server在此代码创建一个SqlConnection到数据库和HTTP Web服务来获取JSON数据,但未能将数据转储到SQL服务器,也是我的控制台窗口不会保持打开状态以逐行调试程序我无法读取,并通过控制台应用程序

+0

为了调试,你是否设置了一个断点? –

+0

是的,我设置了断点,但控制台窗口立即关闭,不显示我的输出? –

回答

1

您的Main()方法为空。它是console app,您应该使用Main()而不是Page_Load()事件。将Page_Load()中的所有代码放在Main()之内并删除Page_Load()

此外,您还应该制作所有字段,属性和方法static,因为您不会创建任何实例。

OR

改变这一行:

public void Page_Load(object sender, EventArgs e) 

本:

public void Start() // or any other name 

Main()应该是:

static void Main() 
{ 
    Class1 obj = new Class1(); 

    obj.Start(); 
} 

编辑:

你的代码应该是:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Newtonsoft.Json.Linq; 
using System.Data.SqlClient; 
using System.Data; 
using HttpWebRequestResponse; 

namespace JSONARECHESTRA 
{ 
    class Class1 
    { 
     public SqlConnection con = new SqlConnection(@"server=SERVE;database=DATABASE;uid=XX;password=XXXX;MultipleActiveResultSets=True"); 
     public SqlCommand cmd; 
     public SqlDataReader dr1; 

     public string json { get; set; } 
     public JToken[] response { get; set; } 


     static void Main() 
     { 
      Class1 obj = new Class1(); 
      obj.DoSomething(); 
     } 

     public void CONNECTION() 
     { 
      if (con.State == ConnectionState.Closed) 
       con.Open(); 
     } 

     public void executeNonQuery(string query) 
     { 
      CONNECTION(); 
      cmd = new SqlCommand(query, con); 
      cmd.ExecuteNonQuery(); 
     } 

     public void DoSomething() 
     { 
      var httpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create("http:URL"); 
      httpWebRequest.ContentType = "application/json"; 
      httpWebRequest.Method = "POST"; 

      using (var streamWriter = new System.IO.StreamWriter(httpWebRequest.GetRequestStream())) 
      { 
       string json = "{\"Username\":\"DEV\"}"; 

       streamWriter.Write(json); 
       streamWriter.Flush(); 
       streamWriter.Close(); 
      } 

      var httpResponse = (System.Net.HttpWebResponse)httpWebRequest.GetResponse(); 

      using (var streamReader = new System.IO.StreamReader(httpResponse.GetResponseStream())) 
      { 
       var result = streamReader.ReadToEnd(); 
       JObject jObject = JObject.Parse(result); 
       response = jObject["Rdata"][0].ToArray(); 
       JArray array = (JArray)jObject["Rdata"]; 

       for (int i = 0; i <= 3; i++) 
       { 
        int Alert_Type = Convert.ToInt32((string)array[i]["Alert_Type"]); 
        DateTime datetime = Convert.ToDateTime((string)array[i]["Date_time"]); 
        string Location = Convert.ToString((string)array[i]["Location"]); 
        string Vehicle = Convert.ToString((string)array[i]["Vehicle"]); 
        Console.WriteLine(Vehicle); 
        Console.ReadKey(); 

        this.CONNECTION(); 

        string insert = "INSERT INTO [DATABASE].[dbo].[TEST6] (datet) VALUES ('" + datetime + "');"; 
        this.executeNonQuery(insert); 

       } 
      } 
     } 
    } 
} 
+0

对不起,我无法得到它我已经改变了Page_Load(object sender,EventArgs e)public void Start(),但问题仍然是相同的数据不会在sql –

+0

@ R-T,你改变'Main'方法吗? –

+0

是,这是程序'c:\ Users \ Administrator \ AppData \ Local \ Temporary Projects \ JSONARECHESTRA \ obj \ Debug \ JSONARECHESTRA.exe'不包含适用于入口点的静态'Main'方法的错误 –

0
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Newtonsoft.Json.Linq; 
using System.Data.SqlClient; 
using System.Data; 
using HttpWebRequestResponse; 

namespace JSONARECHESTRA 
{ 
class Class1{ 


    static void Main() 
    { 
     Class1 obj = new Class1(); 

     obj.Start(); 
    } 

    private void Start() 
    { 
     Console.WriteLine("It is Start() method"); 
    } 




     public SqlConnection con = new SqlConnection(@"server=TNGSRV;database=astha;uid=sa;[email protected];MultipleActiveResultSets=True"); 
     public SqlCommand cmd; 
     public SqlDataReader dr1 ; 
     public void CONNECTION() 
     { 
      if (con.State == ConnectionState.Closed) 
       con.Open(); 
     } 

     public void executeNonQuery(string query) 
     { 
      CONNECTION(); 
      cmd = new SqlCommand(query, con); 
      cmd.ExecuteNonQuery(); 
     } 
    } 
     public class user 

     { 
      private static JToken[] response; 
      static void start() 

    { 
     var httpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create("http://182.18.161.47:99/vts.svc/geo"); 
     httpWebRequest.ContentType = "application/json"; 
     httpWebRequest.Method = "POST"; 

     using (var streamWriter = new System.IO.StreamWriter(httpWebRequest.GetRequestStream())) 
     { 
      string json = "{\"Username\":\"wave\"}"; 

      streamWriter.Write(json); 
      streamWriter.Flush(); 
      streamWriter.Close(); 
     } 

     var httpResponse = (System.Net.HttpWebResponse)httpWebRequest.GetResponse(); 
     using (var streamReader = new System.IO.StreamReader(httpResponse.GetResponseStream())) 
     { 
      var result = streamReader.ReadToEnd(); 
      JObject jObject = JObject.Parse(result); 
      response = jObject["Rdata"][0].ToArray(); 
      JArray array = (JArray)jObject["Rdata"]; 
      for (int i = 0; i <= 3; i++) 
      { 
       int Alert_Type = Convert.ToInt32((string)array[i]["Alert_Type"]); 
       DateTime datetime = Convert.ToDateTime((string)array[i]["Date_time"]); 
       string Location = Convert.ToString((string)array[i]["Location"]); 
       string Vehicle = Convert.ToString((string)array[i]["Vehicle"]); 
       Console.WriteLine(Vehicle); 
       Console.ReadKey(); 
       Class1 cs = new Class1(); 
       cs.CONNECTION(); 
       string insert = "INSERT INTO [astha].[dbo].[TEST6] (datet) VALUES ('" + datetime + "');"; 
       cs.executeNonQuery(insert); 
       //return Page_Load; 
      } 
     } 
    } 


    public string json { get; set; } 





    } 
} 

我已经做到了这一点,但得到同样的问题仍数据不能在SQL打算以及控制台窗口立刻关闭

+0

你不用你的代码调用方法。修改你的'Main': 'static void Main(){user.start(); }' –

+0

@罗马可以请粘贴整个代码与这些更改 –

+0

@罗马感谢吨它工作我欣赏你的帮助 –

相关问题