0

さて、私はもう何をすべきかわからないところまで来ました。以前に質問を投稿したことがありますが、その結果は質問を閉じるための投票で-3でした。それが再び起こることを恐れて、私は検索し続けましたスナップされるまでグーグル...私は多数のコードを試しましたが、エラーが発生するたびに...

今日、約6/7回データベースを作成し、接続文字列を変更し続けました...

私は 3 つのテーブルを持つデータベースを持っていCompanyますCompName

これらを使用してテーブルに情報を入力したいのですが、誰か助けてください

これが私のコードです:

using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


public partial class CompanyLogin : System.Web.UI.Page
{
    protected void Button1_Click(object sender, EventArgs e)
    {
        string ConnectionString =     System.Configuration.ConfigurationManager.ConnectionStrings["MyConncetionString"].ConnectionString;

        string sql = "INSERT INTO company (CompName, BusinessType, Pword) VALUES('" + txtCompName.Text + "','" + DropDownList1.Text + "', '" + txtPassword + "')";
        using (SqlConnection sqlconn = new SqlConnection(ConnectionString))
        {
            sqlconn.Open();

            using (SqlCommand command = new SqlCommand(sql, sqlconn))
            {
                command.ExecuteNonQuery();
            }
        }
    }
}

エラー:

System.NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていません。

オンライン:

string ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MyConncetionString"].ConnectionString;

web.config:

<?xml version="1.0"?>
<configuration>
  <connectionStrings>
     <add name="Varsity_College.tempsConnectionString" 
          connectionString="Data Source=JAUN-   PC\SQLEXPRESS;Initial Catalog=Varsity_College.temps;Integrated Security=True"
          providerName="System.Data.SqlClient" />
  </connectionStrings>
  <system.web>
       ...... (irrelevant) ......
  </system.web>
  <system.webServer>
     <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>

私のエラーは指し続けます

17 行目:
文字列 ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString; *

4

5 に答える 5

4

あなたにはミスマッチがあります

MyConncetionString => で置き換えますMyConnectionString

使用できます

   cmd.CommandText =  "insert into company(CompName, BusinessType, Pword) Values(@CompName,@BusinessType,@Pword);"

    cmd.Parameters.AddWithValue("@CompName", txtCompName.Text);    
    cmd.Parameters.AddWithValue("@BusinessType",DropDownList1.Text);    
    cmd.Parameters.AddWithValue("@Pword",txtPassword );    

    cmd.ExecuteNonQuery();
于 2012-10-11T19:35:35.560 に答える
1

パスワードテキストボックス全体に渡そうとしています。

string sql = "INSERT INTO company (CompName, BusinessType, Pword) VALUES('" +    txtCompName.Text + "','" + DropDownList1.Text + "', '" + txtPassword + "')";

txtPassword.TextまたはパスワードtxtPassword.Passwordフィールドを使用している場合。

于 2012-10-11T19:36:36.197 に答える
0

の接続文字列web.configは次のように呼び出されます。

<connectionStrings>
   <add name="Varsity_College.tempsConnectionString"  ..... />

したがって、このコード行では、明らかに接続文字列が見つかりませweb.config

string ConnectionString = ConfigurationManager.ConnectionStrings["MyConncetionString"].ConnectionString;

したがって、この式はNULL次のとおりです。

ConfigurationManager.ConnectionStrings["MyConncetionString"]

.ConnectionStringその式のプロパティにアクセスしようとすると、表示されNULLているエラーが発生します。

これらの名前は並べる必要があります。

代わりにこれを使用してください:

string ConnectionString = ConfigurationManager.ConnectionStrings["Varsity_College.tempsConnectionString"].ConnectionString;

次に、定義された接続文字列web.configを C# コードに取得する必要があります。

また、null になる可能性があるものを常にチェックすることをお勧めします。例:

string ConnectionString = string.Empty;

// get the entry from the config file
var entry = ConfigurationManager.ConnectionStrings["MyConncetionString"];

// **CHECK** if entry is NOT NULL ......
if (entry != null)
{
   // only when sure that it's not NULL - **THEN** access the entry....
   ConnectionString = entry.ConnectionString;
}
于 2012-10-11T19:47:49.593 に答える
0

コメントで述べたように、web.config の構成タグ内に ConnectionStrings タグを追加する必要があります。

<add name="MyConnectionString" connectionString="Data Source=SQLServerNameOrIP;Initial Catalog=DatabaseName;User ID=user;password=****;Network=IDontKnow" providerName="System.Data.SqlClient"/>

役に立つ (または役に立たない) 参考資料: web.config のサンプル asp.net 接続文字列
方法: Web.config ファイルから接続文字列を読み取る

編集:
これはより良いリンクのように見えます:データベース接続文字列を Web.Config に保存する

于 2012-10-11T19:49:14.197 に答える
0

読み込もうとしている接続文字列が存在しないようです。

ここにタイプミスがありますMyConncetionStringか?(多分それはMyConnectionString)

于 2012-10-11T19:35:46.303 に答える