郁闷,老是提示Connection 属性尚未初始化。

jiangjiewebsky 2006-08-05 01:49:08
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;




public partial class _Default : System.Web.UI.Page
{
public SqlConnection conn;
string SQLstring = System.Configuration.ConfigurationManager.AppSettings["connectionString"];

private void ConOpen()
{
// 打开数据库连接
try
{
if (conn == null)
{
conn = new SqlConnection(SQLstring);
}
if (conn.State == System.Data.ConnectionState.Closed)
conn.Open();
}
catch (Exception ex)
{
throw new Exception("数据库连接失败" + ex.Message);
}
}
/// <summary>
///
/// </summary>


protected void Page_Load(object sender, EventArgs e)
{

}
protected void Btn_Reg_Click(object sender, EventArgs e)
{
SqlCommand myCommand = new SqlCommand("insert into C#Test_Memeber (Username) values ('" + Username.Text + "')", conn);
ConOpen();
myCommand.ExecuteNonQuery(); //这里出问题
myCommand.Connection.Close();


}
}

帮忙看看什么问题?郁闷
...全文
132 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
liumouqing 2006-08-05
  • 打赏
  • 举报
回复
private static string SQLstring = System.Configuration.ConfigurationManager.AppSettings["connectionString"];
jiangjiewebsky 2006-08-05
  • 打赏
  • 举报
回复
解决了。结分
丰云 2006-08-05
  • 打赏
  • 举报
回复
你的connection打开和关闭看起来是配对了,但位置混乱了,这是关键!
注意,在那里打开使用,就在那里关闭,如果觉得不方便,那肯定是你的过程设计不合理
viena 2006-08-05
  • 打赏
  • 举报
回复
try
{
conn.Open();
return conn;
}
catch (Exception ex)
{
conn.Dispose();
return null;
}
jiangjiewebsky 2006-08-05
  • 打赏
  • 举报
回复
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误信息: CS0161: “_Default.ConOpen()”: 并非所有的代码路径都返回值

源错误:



行 16: {
行 17: string SQLstring = System.Configuration.ConfigurationManager.AppSettings["connectionString"];
行 18: private SqlConnection ConOpen()
行 19: {
行 20: SqlConnection conn = new SqlConnection(SQLstring);


viena()给的代码
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;




public partial class _Default : System.Web.UI.Page
{
string SQLstring = System.Configuration.ConfigurationManager.AppSettings["connectionString"];
private SqlConnection ConOpen()
{
SqlConnection conn = new SqlConnection(SQLstring);
try
{
conn.Open();
}
catch (Exception ex)
{
conn.Dispose();
return conn;
}
}


protected void Page_Load(object sender, EventArgs e)
{

}
protected void Btn_Reg_Click(object sender, EventArgs e)
{
SqlConnection conn = ConOpen();

if (conn == null) return;

try
{
SqlCommand myCommand = new SqlCommand("insert into C#Test_Memeber (Username) values ('" + Username.Text + "')", conn);
myCommand.ExecuteNonQuery();
}
catch
{
}
finally
{
conn.Close();
}


}
}

viena 2006-08-05
  • 打赏
  • 举报
回复
连接关闭必须放finally里面,否则发生异常无法关闭
viena 2006-08-05
  • 打赏
  • 举报
回复
SqlConnection conn = ConOpen();
if(conn==null)return;

try
{
SqlCommand myCommand = new SqlCommand("insert into C#Test_Memeber (Username) values ('" + Username.Text + "')", conn);
myCommand.ExecuteNonQuery();
}
catch
{
}
finally
{
conn.Close();
}
viena 2006-08-05
  • 打赏
  • 举报
回复
sorry,ConOpen()中少了一句
conn.Open();
后面
return conn;
viena 2006-08-05
  • 打赏
  • 举报
回复
public SqlConnection conn;去掉


private SqlConnection ConOpen()
{
// 打开数据库连接
SqlConnection conn = new SqlConnection(SQLstring);
try
{

conn.Open();
}
catch (Exception ex)
{
conn.Dispose();
return null;
}
}


SqlCommand myCommand = new SqlCommand("insert into C#Test_Memeber (Username) values ('" + Username.Text + "')", conn);
SqlConnection conn = ConOpen();
myCommand.ExecuteNonQuery(); //这里出问题
myCommand.Connection.Close();
viena 2006-08-05
  • 打赏
  • 举报
回复
conn不要声明为类成员
在过程内声明
etilm 2006-08-05
  • 打赏
  • 举报
回复
SQL打开或者连接有错误!!!
sanlng 2006-08-05
  • 打赏
  • 举报
回复
确保在实现化SqlConnection时为其提供了正确的连接字符串.你的连接操作是放在
private void ConOpen()函数中执行的.而该函数从始至终都没有被执行过.所以当
protected void Btn_Reg_Click(object sender, EventArgs e)被执行时,就会出现该异常.解决方法很简单:在protected void Btn_Reg_Click(object sender, EventArgs e)函数体内开始部分调用private void ConOpen()函数就可以了.
sunjay117 2006-08-05
  • 打赏
  • 举报
回复
conn 设置为静态
或者在
protected void Btn_Reg_Click(object sender, EventArgs e)
下打开

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧