ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

C#で、SQLServerへ、さっき作ったテーブルにアクセスする。

2018-09-18 16:03:27 | ネットワーク
ちなみに、前のエントリで作ったテーブルに、C#でアクセスするには、こんなかんじ。

using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;


namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            // データベース接続
            try
            {
                var mycon = "Data Source =.\\SQLEXPRESS;Integrated Security=False;User ID=sa;Password=sa;Database=testdb";
                var connection = new SqlConnection(mycon);
                connection.Open();

                // SQLの実行
                var command = new SqlCommand();
                command.Connection = connection;
                command.CommandText = @"SELECT * FROM emp_tbl";
                var reader = command.ExecuteReader();
                while (reader.Read() == true)
                {
                    Console.WriteLine("rec id={0} name={1}", reader["id"], reader["name"]);
                }
                Console.ReadLine();

                // データベースの接続終了
                connection.Close();
                Console.WriteLine("*******  end   ***********");

            }
            catch (Exception exception)
            {
                Console.WriteLine(exception.Message);
                throw;
            }
        }
    }
}



これは、接続文字列をプログラムに埋め込んじゃう方法だけど、
app.configとかに書くほうが普通だと思う。
その方法は、

C# で SQL Server に 接続する 方法
https://garafu.blogspot.com/2016/05/how-to-connect-sqlserver-wcs.html


参照(上記プログラムもそれを参照している)

また、これとは全く違った方法で、LINQ to SQLでテーブルアクセスできる。
くわしくは

連載! とことん C#: 第 21 回 LINQ to SQL で楽々クエリ
https://code.msdn.microsoft.com/windowsdesktop/21-LINQ-to-SQL-5de086c7

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

SQL ServerのコマンドラインでDB作成、テーブル一覧表示

2018-09-18 09:49:15 | Weblog
前に、
Oracle,SQLServer,PostgreSQL,MySQLのコマンドライン、GUIツール
https://blog.goo.ne.jp/xmldtp/e/1b2e211bb81f7715fd5b6eca1e8abb18

で、コマンドラインの操作では、DBの作成や一覧、テーブルの一覧などの操作が異なると書いた。

そこで、SQL Serverが手元にあるので、コマンドラインsqlcmdを使った例。

>がプロンプトで、ここを入力している。本当のプロンプトは半角>だが、編集の都合、全角の>にしている。
赤字は、あとで説明する箇所。

C:\Users\user>sqlcmd -S .\SQLEXPRESS -U sa -P sa
1> select name from sys.databases
2> go
name                                                                                                                    
--------------------------------------------------------------------------------------------------------------------------------
master                                                                                                                  
tempdb                                                                                                                  
model                                                                                                                   
msdb                                                                                                                    
test                                                                                                                    

(5 行処理されました)
1> drop database test
2> go
1> select name from sys.databases
2> go
name                                                                                                                    
--------------------------------------------------------------------------------------------------------------------------------
master                                                                                                                  
tempdb                                                                                                                  
model                                                                                                                   
msdb                                                                                                                    

(4 行処理されました)
1> create database testdb
2> go
1> select name from sys.databases
2> go
name                                                                                                                    
--------------------------------------------------------------------------------------------------------------------------------
master                                                                                                                  
tempdb                                                                                                                  
model                                                                                                                   
msdb                                                                                                                    
testdb                                                                                                                  

(5 行処理されました)
1> use testdb
2> go
データベース コンテキストが 'testdb' に変更されました。
1> create table emp_tbl(
2>     id int primary key,
3>     name nvarchar(20),
4> );
5> go
1> select name from sysobjects where xtype = 'U'
2> go
name                                                                                                                    
--------------------------------------------------------------------------------------------------------------------------------
emp_tbl                                                                                                                 

(1 行処理されました)
1> insert into emp_tbl(id,name) values (1,'member1')
2> go

(1 行処理されました)
1> select * from emp_tbl;
2> go
id          name
----------- --------------------
          1 member1

(1 行処理されました)
1> quit

C:\Users\user>



【説明】
・select name from sys.databases
 データベース一覧の表示

・drop database test
 データベースの削除

・create database testdb
 データベースの作成

・use testdb
 データベースの中に入る(利用するというか選択するというか・・)

・select name from sysobjects where xtype = 'U'
 テーブル一覧の表示

※実行させるには、goと打つ必要がある
※あとはふつうのSQLと同じ、Create Tableとかinsert,selectとか・・

【参考サイト】
sqlcmd の使い方
http://www.geocities.jp/kandou_quester/Knowledge/Programming/SQL/_how_to_use_sqlcmd.html

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする