欢迎光临
我们一直在努力

C#.NET数据库操作记要-.NET教程,C#语言

建站超值云服务器,限时71元/月

一.数据库连接

将连接的数据库信息存在下面的文件中,方便统一管理。

web.config//还不懂这个的。最好好好学学,本人觉得很有用,.net么当然要用.net的东西了。

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<configsections>

<sectiongroup name="system.web">

<section name="database" type="system.configuration.namevaluesectionhandler,system,version=1.0.5000.0,culture=neutral,publickeytoken=b77a5c561934e089" />

</sectiongroup>

</configsections>

<system.web>

<!– ダイナミック デバッグ コンパイル

aspx デバッグを有効にするには、compilation debug="true" に設定します。この値を false に設定すると、

このアプリケーションの実行時のパフォーマンスが向上します。

デバッグ シンボル (.pdb 情報) をコンパイルされたページに挿入するには、

compilation debug="true" に設定します。この設定によって、実行速度の遅い大きなファイルが作成されます。

デバッグ時にのみ、この値を true に設定して、

それ以外のときは、常に false に設定してください。詳細については、

asp .net ファイルのデバッグ ドキュメントを参照してください。

–>

<compilation

defaultlanguage="c#"

debug="true"

>

<assemblies>

</assemblies>

</compilation>

<!– カスタム エラー メッセージの設定

カスタム エラー メッセージを有効にするには customerrors mode="on"または "remoteonly" にします。無効にする場合は "off" に設定します。

処理する各エラーに <error> タグを追加してください。

defaultredirect="err.htm"

"オン" 常にカスタム (理解しやすい) メッセージを表示します。

"オフ" 常に詳細な asp.net エラー情報を表示します。

"リモートのみ" ローカル web サーバーで実行していないユーザーに対してのみ、

常にカスタム (理解しやすい) メッセージを表示します。この設定は、セキュリティを考慮して、アプリケーションの詳細がリモートのクライアントに

表示されないようにする推奨された設定です。

–>

<customerrors mode="remoteonly" defaultredirect="/main/defaulterror.aspx">

<error statuscode="404" redirect="/main/error500.htm" />

<error statuscode="500" redirect="/main/error500.htm"/>

</customerrors>

<!– 認証の設定

このセクションは、アプリケーションの認証ポリシーを設定します。使用できるモードは、"windows"、

"forms"、"passport" および "none" です。

"none" 認証が実行されません。

"windows" iis はアプリケーションの設定に従って認証 (基本、ダイジェスト、または統合 windows)

を実行します。匿名アクセスは iis では無効でなければなりません。

"forms" ユーザーが資格情報を入力するカスタム フォーム (web ページ) を提供してください。

そして、アプリケーションで認証してください。ユーザーの資格情報のトークンは cookie に保存されています。

"passport" 認証は、単一のログオンおよびメンバ サイトのコア プロファイル サービスを提供する

microsoft により提供される管理認証サービスを使用して実行されます。

–>

<identity impersonate="true"/>

<authentication mode="windows" />

<!– 権限の設定

このセクションは、アプリケーションの権限のポリシーを設定します。この設定により、ユーザーまたはロールによるアプリケーション リソースへのアクセスを許可したり、

拒否したりできます。ワイルドカード : "*" は全員を、"?" は匿名

(未認証) ユーザーを表します。

–>

<authorization>

<allow users="*" /> <!– * 全ユーザーへの許可 –>

<!– <allow users="[ユーザーのコンマ区切り一覧]"

roles="[ロールのコンマ区切り一覧]"/>

<deny users="[ユーザーのコンマ区切り一覧]"

roles="[ロールのコンマ区切り一覧]"/>

–>

</authorization>

<!– アプリケーション レベルのトレース ログの設定

アプリケーション レベルのトレースは、アプリケーション内の全ページのトレース ログ出力を有効にします。

アプリケーション トレース ログを有効にするには、trace enabled="true" に設定します。pageoutput="true" に設定された場合、

トレース情報が各ページの下に表示されます。それ以外の場合は、

web アプリケーション ルートから "trace.axd" ページを参照してアプリケーション トレースを

表示できます。

–>

<trace

enabled="false"

requestlimit="10"

pageoutput="false"

tracemode="sortbytime"

localonly="true"

/>

<!– セッション状態の設定

既定では、asp.net は cookie を使用して、要求がどのセッションに属するかを識別します。

cookie が使用できない場合は、url にセッション識別子を入力することで、セッションを見つけることができます。

cookie を有効にするには、sessionstate を cookieless="false" に設定してください。

–>

<sessionstate

mode="inproc"

stateconnectionstring="tcpip=127.0.0.1:42424"

sqlconnectionstring="data source=127.0.0.1;trusted_connection=yes"

cookieless="false"

timeout="720"

/>

<!– グローバリゼーション

shift_jis このセクションはアプリケーションのグローバリゼーション設定を行います。

utf-8–>

<globalization

requestencoding="utf-8"

responseencoding="utf-8"

/>

<database>

<!–add key="portaldb" value="server=(local)\netsdk;database=portal;integrated security=sspi" /–>

<add key="strconn" value="server=107.12.165.199;database=nwind;uid=nwind;pwd=nwind" />

</database>

</system.web>

<appsettings>

<add key="nwind" value="server=107.12.165.199;database=nwind;uid=nwind;pwd=nwind;" />

</appsettings>

</configuration>

连接代码:

using system.data.sqlclient;

using system.collections.specialized;//操作xml所需要的namespace

string strconn=(string) ((namevaluecollection) context.getconfig("system.web/database"))["strconn"];

操作代码:

1,通过数据库中的存储过程来操作数据库,通过中间层来做工程是最理想的。能提高安全性和整体性能。

using (sqlconnection conn = new sqlconnection(strconn))

{

sqlcommand cmd = new sqlcommand("sp_sp",conn);

cmd.commandtype=commandtype.storedprocedure;//声明是调用存储过程

cmd.parameters.add("@sno",sqldbtype.varchar,9);

cmd.parameters.add("@td",sqldbtype.smalldatetime);

cmd.parameters.add("@s_note",sqldbtype.varchar,100);//添加变量参数

cmd.parameters["@sno"].value=sno.text;

cmd.parameters["@td"].value=checkbase.text;

cmd.parameters["@s_note"].value=snote.text;//给参数付值

conn.open();

if(cmd.executenonquery()!=0)//执行没有返回集合

okmsg.text="データ登録完成";

else

okmsg.text="データ登録失敗";

}

2,直接输出sql语句

string strsql="update nwind.nuser.data set sno="+sno.text;//sql server需要指明该表所在的数据库名和创建该表的用户名

if(checkbase.text!="")

strsql+=",month ="+checkbase.text+"/01";

strsql+=" where sno ="+sno.text+"";

conn.open();

sqlcommand cmd = new sqlcommand(strsql,conn);

if(cmd.executenonquery()!=0)

okmsg.text="データが登録しました";

else

okmsg.text="データ登録失敗";

}

3.检索语法sqldataadapter 与dataset 联合使用,一般用于对获得数据集有特殊操作的情况

比较常用

private dataset getdata()

{

string strconn=(string) ((namevaluecollection) context.getconfig("system.web/database"))["strconn"];

using (sqlconnection conn = new sqlconnection(strconn))

{

sqlcommand cmd = new sqlcommand("sp_co",conn);

cmd.commandtype=commandtype.storedprocedure;

cmd.parameters.add("@place",sqldbtype.varchar,2);

cmd.parameters["@place"].value=place.text;

conn.open();

sqldataadapter da = new sqldataadapter();

da.selectcommand=cmd;

dataset ds=new dataset();

da.fill(ds,"vco");

//通过dataset 你可以像对待一个本地数据库,可以存放多个数据表,实现你要达成的功能。具体如表格的处理有列的删除增加,多表之间的处理。等等

count.text="ヒット:"+ds.tables["vco"].rows.count.tostring()+"件";

return ds;

}

}

4,当仅仅用于读取数据的话推荐使用sqldatareader ,读取速度较上面要快很多

private void dataloader()

{

string strconn=(string) ((namevaluecollection) context.getconfig("system.web/database"))["strconn"];

using (sqlconnection conn = new sqlconnection(strconn))

{

sqlcommand cmd = new sqlcommand("sp_list",conn);

cmd.commandtype=commandtype.storedprocedure;

cmd.parameters.add("@no",sqldbtype.varchar,6);

cmd.parameters["@no"].value=no.text;

conn.open();

using (sqldatareader dr = cmd.executereader())

{

if(dr.read())

{

c.text=dr["c"].tostring(); //通过列名获得数据

m.text=dr["mtc"].tostring(); //

}

else

okmsg.text="このデータがありません、又は定検送り先の値は違法です。";

}

}

}

注意,以上都采用using(),好处是不需要再给打开的数据库连接,作close()操作了。

因为本人记性极差,所以很喜欢这个方法

先到这里吧。数据库中存储过程具体怎么做。以后再讲吧。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » C#.NET数据库操作记要-.NET教程,C#语言
分享到: 更多 (0)

相关推荐

  • 暂无文章