ASP.net错误INSERTING INTO SQL表

时间:2012-10-11 19:31:48

标签: c# asp.net sql-server-2012

好的,我已经到了一个我不知道该怎么办的地步,我之前发过一个问题,结果是-3票投票来关闭这个问题,并担心会再次发生这种情况让我一直在搜索googleing直到抢购...我尝试了很多代码,每次都出错...

我今天创建了一个大约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行:
   string ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings [“MyConnectionString”]。ConnectionString; *

5 个答案:

答案 0 :(得分:4)

你有不匹配

MyConncetionString =&gt;替换为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();

答案 1 :(得分:1)

您正试图将整个密码文本框传递给它。

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

如果您使用的是密码字段,则应为txtPassword.TexttxtPassword.Password

答案 2 :(得分:0)

您尝试加载的连接字符串似乎不存在。

你有错误MyConncetionString吗? (也许是MyConnectionString

答案 3 :(得分: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;
}

答案 4 :(得分:0)

正如我在评论中所说,您需要在web.config中的配置标记内添加ConnectionStrings标记。

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

某些可能(或可能不)有用的参考文献: Sample asp.net connection string for web.config
How to: Read Connection Strings from the Web.config File

编辑:
这似乎是一个更好的链接:Storing Database Connection String in Web.Config