Использование запроса выбора в C # .NET для приложения веб-службы - PullRequest
3 голосов
/ 07 ноября 2011

Я не могу понять, как пишется запрос select *, пока мы создаем веб-сервис с использованием C # .NET для подключения к базе данных SQL.

В принципе, у меня есть 4 столбца. Я принимаю определенный вклад от пользователя, который является существующим значением 1-го столбца. Теперь в зависимости от этого значения я хочу выбрать все записи из оставшихся 3 столбцов. Мне нужно написать запрос SELECT *, но я не знаю, в какой форме я получу эти записи. Я слышал о SqlDataAdapter, но тогда он вернет мне записи в формате строки-столбца или должен будет сохранить результат в каком-то виде List, а затем использовать его для других целей.

Может кто-нибудь помочь мне понять, как можно написать такой запрос?

Этот код неверен, но он поможет понять, что мне нужно

Я хочу получить записи о других столбцах, основываясь на моем условии "where оговорка"

        using System;
        using System.Collections;
        using System.ComponentModel;
        using System.Data;
        using System.Linq;
        using System.Web;
        using System.Web.Services;
        using System.Web.Services.Protocols;
        using System.Xml.Linq;
        using System.Data.SqlClient;



   namespace statistics 
 {
       /// <summary>
/// Summary description for Service1
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{

    [WebMethod]
    public int retrieve(String rollno)
    {

        int rows=0;

        SqlConnection myConnection = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=student;User ID=sa;Password=123");
        try
        {
            myConnection.Open();

            SqlCommand myCommand = new SqlCommand();
            myCommand.Connection = myConnection;
            String strsql = "SELECT * FROM checkrecord values WHERE rollno=@rollno";
            DataSet dataSet = new DataSet();
            SqlDataAdapter dataAdapter = new SqlDataAdapter(strsql, myConnection);
            myCommand.Parameters.Add("@rollno", SqlDbType.VarChar).Value = rollno;
            rows = myCommand.ExecuteNonQuery();
            SqlDataReader myReader = myCommand.ExecuteReader()         

        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        finally
        {
            myConnection.Close();
        }

        return rows;
         }

      }
         }

Ответы [ 3 ]

1 голос
/ 07 ноября 2011

Я думаю, вы говорите о типе возврата веб-службы? Да, запрос к базе данных вернет вам список значений записей. Однако с помощью .net webservices вы можете поместить эти значения в пользовательский класс, написанный вами, и структура этого класса будет включена в ваш веб-сервис.

[WebMethod]
public Myclass retrieve(String rollno)
{
return new Myclass("variable1", "variable2");
}

Он будет включен в WSDL и, следовательно, может быть реализован любым другим приложением, использующим ваш веб-сервис.

1 голос
/ 07 ноября 2011

Вам необходимо подключиться к базе данных, а затем с помощью SQLDataAdapter отправить запрос SELECT на пользовательский ввод в базу данных.Примерно так:

ВЫБРАТЬ col2, col3, col4 ОТ вашей таблицы WHERE col1 =?

Существуют различные способы использования SQLDataAdapter и указания запроса и параметров.SQLDataAdapter вернет DataSet, который содержит DataTable.Затем вы можете использовать DataSet или DataTable, чтобы заполнить выбранный вами элемент управления (т. Е. DataGrid) результатами.На MSDN есть пошаговое руководство: http://msdn.microsoft.com/en-us/library/aa984467%28v=vs.71%29.aspx

На основании ваших правок вы не хотите использовать ExecuteNonQuery.Чтобы получить строки, вы используете ExecuteReader.Пример здесь: http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executereader%28v=VS.71%29.aspx

0 голосов
/ 07 ноября 2011

Я рекомендую просмотреть документацию для рассматриваемого класса, в данном случае, SQLDataAdapter

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldataadapter.aspx

Я думаю, что вам может понадобиться заполнить результаты в наборе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...