Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C# Повторяющиеся значения в ключевое поле https://www.cyberforum.ru/ ado-net/ thread1886647.html
Доброго времени суток. Имеется три таблицы - товары, заказы, и товары-заказы(связующая таблица) В т.товары-заказы имеется два поля id_заказа(из т.заказы) и id_товары(из т.товары), эти два поля имеют составные ключи. В форме нужно добавить данные из datagridview в т.товары-заказы. В datagridview содержится допустим три строки с данными, и в цикле я добавляю эти данные поочередно в...
Entity Framework. SQL Exception "Invalid column name" C#
Здравствуйте, мне надо создать базу данных, используя Entity Framework В базу надо записать ключевое слово, дату и двоичный файл с данными я делаю стратегией Code First в коде ниже у меня str_for_connect - строка подключения к бд прописана в App.config public class DataLibrary : DbContext { public DataLibrary(string connect_str = "str_for_connect") : base(connect_str) ...
C# Данные в промежуточную таблицу https://www.cyberforum.ru/ ado-net/ thread1886261.html
В таблице goods-orders(промежуточная) должны добавляться данные из datagridview2. Но выдает ошибку: Syntax error in INSERT INTO statement. В запросе ошибки вроде как бы нет.. При нажатии на кнопку "оформить заказ", данные должны записываться в access private void saveBDbutton_Click(object sender, EventArgs e) { myCom.Connection = conn; myCom.CommandText =...
C# Entity Framework. Что указать в строке подключения чтобы бд создалась в папке с проектом? Всем привет. Начал изучать Entity framework. Возник вопрос как в конфиге написать строку подключения чтобы бд создалась в папке с проектом? https://www.cyberforum.ru/ ado-net/ thread1886048.html
C# Выгрузить данные из SQL и сохранить их в таблицу Excel
Здравствуйте. Уважаемые гуру в C# помогите плз. Необходимо по запросу выгрузить данные из SQL и сохранить их в таблицу Excel. Реализую это при помощи ClosedXML, но вот только не могу сообразить: Как сделать динамическое оформление таблицы (т.е. чтобы границы были только у заполненных ячеек) Как заполнить всю таблицу данными. То до чего я додумался имеет конкретные размеры таблицы, а так же...
C# Ввод картинки в базу SQL Server и превышение длины строки https://www.cyberforum.ru/ ado-net/ thread1885659.html
Здравствуйте, возникла такая проблема. При попытке ввести картинку кодом OpenFileDialog opf = new OpenFileDialog(); if (opf.ShowDialog() == DialogResult.OK) { bmp = new Bitmap(opf.FileName); pictureBox1.Image = bmp; }
C# Можно ли программно узнать ключевое поле? https://www.cyberforum.ru/ ado-net/ thread1885639.html
Всем привет. Как можно узнать ключевое поле в подключенной базе данных SQL?
Загрузить в treeview данные из двух таблиц C#
Всем здравствуйте. Хочется иметь вот такое treeview, которое содержит номер, ФИО и 8 bool полей Проблема заключается в том, что ФИО и те самые поля типа bool находятся в разных таблицах (Id и ФИО — таблица Students, остальные поля — таблица Visits). Отношение между этими таблицами 1-1 через Id. Пробовал так, ничего не вышло. var linq = db.GroupsDB.SqlQuery ("select * from Groups where...
C# Проверка есть ли уже товар с таким кодом в базе данных Microsoft Access Здравствуйте. У меня такая проблема. Я добавляю в базу данных товар при этом нужно указать код товара. Как сделать проверку есть ли уже товар с таким кодом? https://www.cyberforum.ru/ ado-net/ thread1885442.html C# Выборка строк из БД https://www.cyberforum.ru/ ado-net/ thread1885377.html
Привет Подскажите,нужно выбрать из БД строки,в которых "стоимость" попадает в определенный диапазон.Верхняя и нижняя планка диапазона задается в текстбоксах. Пишу private void button3_Click(object sender, EventArgs e) { автоBindingSource.Filter = "Стоимость" & textBox2.Text & "AND Стоимость<=" & textBox3.Text; } Выдает ошибку
Ошибка при подключении к *.mdb C#
На форме лежит компонент dataGridView, с помощью "Мастера настройки источника данных" настраиваю подключение в файлу *.mdb лежащему рядом с исполняемым *.exe. На всех этапах настройки всё идёт нормально, т.е. читаются все таблицы, поля и даже выполняется запросы, но при запуске вылетает ошибка "Поставщик "Microsoft.Jet.OLEDB.4.0" не зарегистрирован на локальном компьютере.". Гугул посоветовал...
C# Как подключиться к БД MySQL? https://www.cyberforum.ru/ ado-net/ thread1885291.html
Подскажите, как подключиться к БД в visual studio ? И было бы неплохо подкинуть каких-нибудь гайдов по sql запросам в c#
5 / 5 / 5
Регистрация: 17.12.2013
Сообщений: 202
26.12.2016, 02:28  [ТС] 0

Функция отправки GET запросов и парсинг JSON-строки в таблицу - C# - Ответ 9943308

26.12.2016, 02:28. Показов 2289. Ответов 3
Метки (Все метки)

Ответ

Вот готовое решение: DLL с функциями отправки http-запроса, парсинга результата-json и запись в таблицу SQL Server

Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Collections;
using System.Globalization;
 
// For the SQL Server integration
using Microsoft.SqlServer.Server;
 
// Other things we need for WebRequest
using System.Net;
using System.Text;
using System.IO;
using System.Linq;
using Dapper;
using Newtonsoft.Json.Linq;
 
 
 
namespace SqlWebRequest
{
    public partial class Functions
    {
        // Function to return a web URL as a string value.
        [Microsoft.SqlServer.Server.SqlFunction(DataAccess = DataAccessKind.Read)]
        public static void GET(SqlString uri, SqlString username, SqlString passwd, String Table_Name, String Connection_String, Boolean Create_Table)
        {
            // The SqlPipe is how we send data back to the caller
            SqlPipe pipe = SqlContext.Pipe;
            String document;
 
            // Set up the request, including authentication
            WebRequest req = WebRequest.Create(Convert.ToString(uri));
            if (Convert.ToString(username) != null & Convert.ToString(username) != "")
            {
                req.Credentials = new NetworkCredential(
                    Convert.ToString(username),
                    Convert.ToString(passwd));
            }
            ((HttpWebRequest)req).UserAgent = "CLR web client on SQL Server";
 
            // Fire off the request and retrieve the response.
            // We'll put the response in the string variable "document".
            WebResponse resp = req.GetResponse();
            req.Timeout = 50000;
            Stream dataStream = resp.GetResponseStream();
            StreamReader rdr = new StreamReader(dataStream);
            document = (String)rdr.ReadToEnd();
 
            // Close up everything...
            rdr.Close();
            dataStream.Close();
            resp.Close();
 
            // .. and return the output to the caller.
            // return (document);
            Parsing(document, Table_Name, Connection_String, Create_Table);
        }
 
 
        private static void Parsing(String Json_String, String Table_Name, String Connection_String, Boolean Create_Table)
        {
            var json = JObject.Parse(Json_String);
 
            var tableName = Table_Name;
            var colums = json["response"]["result"]["column_order"];
            var rows = json["response"]["result"]["rows"];
            var connectionString = Connection_String; //@"Data Source=192.168.1.52;Initial Catalog=TestDb;User ID=sa; Password=zxc12EE";
 
            using (IDbConnection db = new SqlConnection(connectionString))
            {
                if(Create_Table == true)
                {
                    db.Execute($@"
                    create table {tableName}
                    (
                        {string.Join("," + Environment.NewLine, colums.Select(colum => $"[{colum}] NVARCHAR(MAX)"))}
                    )
                  ", commandTimeout: 600);
 
                    db.Execute($@"
                    {string.Join(Environment.NewLine,
                       rows.Select(
                       row => $"INSERT INTO {tableName} VALUES ({string.Join(", ", row.Select(r => $"N'{r}'"))});"))}
                 ", commandTimeout: 600);
 
                }
 
                db.Execute($@"
                    {string.Join(Environment.NewLine,
                    rows.Select(
                        row => $"INSERT INTO {tableName} VALUES ({string.Join(", ", row.Select(r => $"N'{r}'"))});"))}
                ", commandTimeout: 600);
 
            }
        }
    }
}


На стороне SQL Server нужно выполнить:

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
USE [Zoho]
GO
CREATE ASSEMBLY [SqlWebRequest]
FROM 'C:\DLL\SqlWebRequest.dll'
WITH PERMISSION_SET=UNSAFE;
GO
 
USE [Zoho]
GO
CREATE PROCEDURE [dbo].[fn_get_webrequest](
     @uri                 nvarchar(MAX),
     @USER                nvarchar(255)=NULL,
     @passwd              nvarchar(255)=NULL,
     @TABLE_NAME          nvarchar(50)=NULL,
     @Connection_String   nvarchar(255)=NULL,
     @Create_Table        bit =NULL
 
)
AS
EXTERNAL NAME [SqlWebRequest].[SqlWebRequest.Functions].[GET];
 
 
--IF OBJECT_ID('fn_get_webrequest') IS NOT NULL DROP FUNCTION [fn_get_webrequest]
--GO
--USE [Zoho]
--GO
--CREATE FUNCTION [dbo].[fn_get_webrequest](
--     @uri        nvarchar(max),
--     @user       nvarchar(255)=NULL,
--     @passwd     nvarchar(255)=NULL
--)
--RETURNS nvarchar(max)
--AS
--EXTERNAL NAME [SqlWebRequest].[SqlWebRequest.Functions].[GET];  Guurtus$gd4
Вызывать таким образом:

SQL
1
2
3
4
5
DECLARE @URL NCHAR(300) = 'ht='
DECLARE @SQL_QUERY nvarchar(300) = 'SELECT * FROM "Счета"';
DECLARE @json nvarchar(MAX) = @URL + @SQL_QUERY;
 
EXEC [Zoho].[dbo].[fn_get_webrequest] @json, DEFAULT, DEFAULT, 'Счета', 'Data Source=;Initial Catalog=;User ID=; Password=', 0
При подключении сборки в SQL Server в папке C:\DLL
был такой перечень библиотек

Прикрепил проект библиотеки и нужные dll

Вернуться к обсуждению:
Функция отправки GET запросов и парсинг JSON-строки в таблицу C#
Вложения
Тип файла: rar SqlWebRequest.rar (3.58 Мб, 13 просмотров)
Тип файла: rar DLL.rar (723.8 Кб, 10 просмотров)
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2016, 02:28
Готовые ответы и решения:

Парсинг строки json
Укажите пожалуйста на ошибку: Структура JSON файла: { &quot;threads&quot;:, ...

JSON парсинг из базы в таблицу
Здравствуйте. Мне надо сделать JSON парсинг данных из базы в таблицу. //Конфиг соединения к бд...

Java, JSON и JSON Simple. Непонятка с созданием объекта JSON на сервере для отправки на фронт
Здравствуйте. Разрабатываю интернет-магазин на Java. Мне нужно на фронте получить список товаров из...

Парсинг строки JSON
Tcnm json строка типа: вот класс для парсинга: public class ResultJson { ...

3
26.12.2016, 02:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2016, 02:28
Помогаю со студенческими работами здесь

Парсинг JSON строки
Доброго времени суток! :) Написал &quot;парсер&quot; JSON для своих нужд. :D Что парсил (пытался...

Парсинг JSON-строки и вывод данных из строки
Добрый день! Я разрабатываю Android-клиент, который мог бы обмениваться данными с размещенной...

Парсинг Json строки в объект и массив
{ &quot;json&quot;: }, { &quot;tovar&quot;: } ] } string js = &quot;{ &quot;json&quot;...

[solved] Магия: парсинг JSON из файла не работает. Из строки все нормально
Всем привет. Начинаю понимать, что в веб-программировании творится неистовое волшебство. А суть-то...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru