注册 登录
编程论坛 ASP.NET技术论坛

为什么会出现字符串的连接问题?

鸿鹄 发布于 2011-05-17 13:41, 622 次点击
程序:碰到郁闷的问题,见程序红色部分

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

///使用 WebConfigurationManager需要引用的空间
using System.Web.Configuration;
///使用 SqlConnection需要引用的空间
using System.Data.SqlClient;

/// <summary>
///StudentDB 的摘要说明
/// </summary>
public class StudentDB
{
   
    String connectionString;
    public StudentDB()
    {
        connectionString = WebConfigurationManager.ConnectionStrings["Student"].ConnectionString;
      
    }

    public StudentDB(string connectionString)
    {

        this.connectionString = connectionString;
    }

    public string TestConnection() //测试数据库是否链接成功
    {
        String databaseInfo;
   
        SqlConnection con = new SqlConnection(connectionString);
        try
        {
            con.Open();
            databaseInfo = "<b>Server Version:</b>" + con.ServerVersion;
            databaseInfo += "<br/><b>Connection Is:</b>" + con.State.ToString();

        }
        catch (Exception ex)
        {

            databaseInfo = "ERROR Reading the database." + ex.Message;

        }
        finally
        {
                con.Close();
                databaseInfo+= "<br/><b>Now Connection is :</b>" +
                con.State.ToString();
这里出错了,提示说是“使用了未赋值的局部变量“databaseInfo”可前面我不是已经赋了值吗”

            
        }
        return databaseInfo;
      

    }
}
5 回复
#2
jalonlovesja2011-05-17 17:17
databaseInfo变量在声明时没赋值了,下面你说的赋值是要执行到那一步的时候才能赋值的。
#3
鸿鹄2011-05-18 13:17
databaseInfo = "<b>Server Version:</b>" + con.ServerVersion; 这句不能算是赋值吗,有 "<b>Server Version:</b>"这个内容啊。
不过我后来把databaseInfo赋值为空,就可以了。
#4
鸿鹄2011-05-18 13:24
public DataSet GetStudents() //获取所有学生信息的函数
    {

        SqlConnection con = new SqlConnection(connectionString);
        DataSet ds = new DataSet();

       //不知为何以下三句有错。
       SqlCommand cmd = new SqlCommand(con); // 我把它改成SqlCommand cmd = new SqlCommand(con.ToString())还是不行,con是SqlConnection,它不是已经是string类型了吗?

       = "SELECT ID,Name,Sex,Age FROM StudentInfo";

      SqlDataAdapter adq = new SqlDataAdapter(cmd);


//错误    1    与“System.Data.SqlClient.SqlCommand.SqlCommand(string)”最匹配的重载方法具有一些无效参数
//错误    2    参数“1”: 无法从“System.Data.SqlClient.SqlConnection”转换为“string”
   




        //SqlDataAdapter adq = new SqlDataAdapter("SELECT ID,Name,Sex,Age FROM StudentInfo", con);
        try
        {
            con.Open();
            adq.Fill(ds);//将数据填充到DataSet中


        }
        catch (SqlException ex)
        {
            throw new ApplicationException("Data Error.");

        }
        finally
        {
            con.Close();

        }
        return ds;//返回数据集
    }
#5
accp_ap2011-05-24 14:31
你声明声明的时候先给它赋值null看行不
#6
roy200410302011-06-01 17:01
sqlcommand amd=new sqlcommand();这句没有只有参数为sqlconnection的重载;
就是这个问题;
1