Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将datatable转换为json时出错_C#_Json_Winforms - Fatal编程技术网

C# 将datatable转换为json时出错

C# 将datatable转换为json时出错,c#,json,winforms,C#,Json,Winforms,在将每行的datatable转换为json时,我没有得到正确的格式,而且还得到了错误“RowError”:“RowState”:2 这是我的密码: StrQry="select * from doctor_mas where version_code=1"; DataTable dt=new DataTable(); dt=Sqlhelper.OleDbTable(StrQry); try { for(

在将每行的datatable转换为json时,我没有得到正确的格式,而且还得到了错误
“RowError”:“RowState”:2

这是我的密码:

 StrQry="select * from doctor_mas where version_code=1";
        DataTable dt=new DataTable();
        dt=Sqlhelper.OleDbTable(StrQry);


        try
        {
            for(int i=0;i<dt.Rows.Count;i++)
            {
             string JSONresult;
             JSONresult = JsonConvert.SerializeObject(dt.Rows[i]);
             var Update = new Salestrak.Update.updDoc();
             String Authrized = Update.updateTable((int)dt.Rows[i][0], "doctor_mas", JSONresult); 
            }
        }
        catch
        {
            MessageBox.Show("Sync Aborted");
        }
试试这个:

string JSONresult = JsonConvert.SerializeObject(dt.Rows[i].ItemArray);
基本上,您希望序列化
DataRow
的内容数组

有一些开销的替代方案-

var o = JsonConvert.SerializeObject(dt.Rows[0]);

for (var i = 0; i < JObject.Parse(o)["Table"].Count(); i++)
{
    var t = JObject.Parse(o)["Table"][i];
}
var o=JsonConvert.SerializeObject(dt.Rows[0]);
for(var i=0;i
来自

//此方法用于将datatable转换为json字符串
公共字符串ConvertDataTabletoString()
{
DataTable dt=新的DataTable();
使用(SqlConnection con=newsqlconnection(“数据源=SureshDasari;初始目录=master;集成安全性=true”))
{
使用(SqlCommand cmd=newsqlcommand(“选择title=City,lat=latitude,lng=longitude,LocationDetails中的描述”,con))
{
con.Open();
SqlDataAdapter da=新的SqlDataAdapter(cmd);
da.填充(dt);
System.Web.Script.Serialization.JavaScriptSerializer serializer=新的System.Web.Script.Serialization.JavaScriptSerializer();
列表行=新列表();
字典行;
foreach(数据行dr在dt.行中)
{
行=新字典();
foreach(dt.列中的数据列列列)
{
行添加(列名称,dr[col]);
}
行。添加(行);
}
返回序列化程序。序列化(行);
}
}
}

请包含足够的信息以便重新创建,不要大声喊叫:它不会更快得到帮助,您的
json
包含
数据行的所有属性。您能解释一下您有什么特殊需要吗?
{“id”:293.0,“出生日期”:“1990-05-26T00:00:00”,“医生代码”:“D293”,“医生姓名”:“Aarti Thakker”,“版本代码”:1}
我非常想要它
var o = JsonConvert.SerializeObject(dt.Rows[0]);

for (var i = 0; i < JObject.Parse(o)["Table"].Count(); i++)
{
    var t = JObject.Parse(o)["Table"][i];
}
// This method is used to convert datatable to json string
public string ConvertDataTabletoString()
{
    DataTable dt = new DataTable();
    using (SqlConnection con = new SqlConnection("Data Source=SureshDasari;Initial Catalog=master;Integrated Security=true"))
    {
        using (SqlCommand cmd = new SqlCommand("select title=City,lat=latitude,lng=longitude,description from LocationDetails", con))
        {
            con.Open();
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(dt);
            System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
            List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
            Dictionary<string, object> row;
            foreach (DataRow dr in dt.Rows)
            {
                row = new Dictionary<string, object>();
                foreach (DataColumn col in dt.Columns)
                {
                    row.Add(col.ColumnName, dr[col]);
                }
                rows.Add(row);
            }
            return serializer.Serialize(rows);
        }
    }
}