簡體   English   中英

ASP.net錯誤將表插入SQL表

[英]ASP.net error INSERTING INTO SQL table

好的,我已經到了一個不知道該怎么做的地步,我之前發布了一個問題,結果是-3的贊成票使該問題得以解決,並且由於擔心再次發生這種情況,我一直在搜尋谷歌搜索直到響起...我嘗試了很多代碼,每次我得到一個錯誤...

我今天創建了大約6/7次數據庫,並不斷更改連接字符串...

我有一個包含3個表的數據庫,其中1個表稱為Company ,現在我想使用2個代表CompName和密碼的文本框以及一個代表businesstype的下拉列表。

我想用這些將信息輸入表格中,有人可以幫我嗎

這是我的代碼:

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; *

你不匹配

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();

您正在嘗試將整個密碼文本框傳遞給它。

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

如果您使用的是密碼字段, txtPassword.PasswordtxtPassword.TexttxtPassword.Password

您要加載的連接字符串似乎不存在。

您在MyConncetionString有錯字嗎? (也許是MyConnectionString

您在web.config連接字符串稱為:

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

因此,這行代碼顯然不會web.config找到任何連接字符串:

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

因此,此表達式為NULL

ConfigurationManager.ConnectionStrings["MyConncetionString"]

並嘗試訪問該NULL表達式上的.ConnectionString屬性會導致您看到的錯誤。

這些名字需要排隊!

所以改用這個:

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

然后您應該將在web.config定義的連接字符串放入C#代碼中!

另外: 始終檢查可以為空的內容是一個好原則-例如:

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;
}

正如我在評論中所說,您需要在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中存儲數據庫連接字符串

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM