0

SQL Server 2008 R2とC#ASP.NET4を使用しています

列を含むmyTableという名前のこの簡略化されたテーブルがあります:Col1、Col2、Col3、Col4

CREATE TABLE [dbo].[myTable](
    [Col1] [int] NULL,
    [Col2] [int] NULL,
    [Col3] [nvarchar](50) NULL,
    [Col4] [int] NULL
) ON [PRIMARY]
GO
INSERT [dbo].[myTable] ([Col1], [Col2], [Col3], [Col4]) VALUES (0, 0, N'@', 0)
INSERT [dbo].[myTable] ([Col1], [Col2], [Col3], [Col4]) VALUES (1, 2, N'c', 4)
INSERT [dbo].[myTable] ([Col1], [Col2], [Col3], [Col4]) VALUES (11, 22, N'cc', 44)

(元のテーブルははるかに広いです)

列をC#変数または変数の配列/リストに2つ(または20または200)する方法SELECT、またはそのようなものと同じかそれ以上に効果的なもの:

object obj = new object();
string sql = "SELECT Col2, Col3 FROM myTable WHERE Col1=0";
using (SqlConnection conn = new SqlConnection(mySqlCalss.DatabaseConnectionString() ))
            {
                SqlCommand cmd = new SqlCommand(sql, conn);
                cmd.Connection.Open();
                obj = cmd.ExecuteNonQuery();
            }

ある意味で、次のようなものを使用できます。

int myVar1 = (int)ojb[0];
string myVar2 = (string)obj[1];

それから:

lblMyASPlable1.Text = myVar1.ToString();
lblMyASPlable2.Text = myVar2;

4

4 に答える 4

3

あなたは「ExecuteNonQuery」を使用しています。これは缶に書かれていることを実行し、クエリ、つまり選択のようには実行されません。ExecuteReaderを試してください。

SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
    Console.WriteLine(String.Format("{0}", reader[0]));
}
于 2012-06-11T10:50:48.787 に答える
1

読み取りを使用しDataReader て、Datareaderの動作を確認してください

于 2012-06-11T10:52:52.407 に答える
0

あなたが必要ですSQLDataAdapter

DataTable table = new DataTable();
string sql = "SELECT Col2, Col3 FROM myTable WHERE Col1=0";
using (SqlConnection conn = new SqlConnection(mySqlCalss.DatabaseConnectionString() ))
{
   SqlCommand cmd = new SqlCommand(sql, conn);
   cmd.Connection.Open();
   SqlDataAdapter adapter = new SqlDataAdapter(cmd);
   adapter.Fill(table);                
}

int myVar1;
string myVar2;
if(table.Rows.Count>0)
{
  myVar1 = (int)table.Rows[0]["Col2"];
  myVar2 = (string)table.Rows[0]["Col3"];
} 
于 2012-06-11T10:51:38.803 に答える
0

あなたはdapperのようなMicroORMを調べたいかもしれません

于 2012-06-11T10:53:31.427 に答える