读书人

ASP.NET有关问题 非常急 登录后台提示

发布时间: 2013-01-17 10:28:55 作者: rapoo

ASP.NET问题 非常急 登录后台提示: 对象名 'admin' 无效。
ASP.NET,3.5,数据库2005 ,问题 非常急 登录后台提示: 对象名 'admin' 无效。


这是Class1.cs

//定义方法 通过用户名和密码来判断用户名是否存在在 public bool getAdminByNameAndPwd(string name, string pwd) {

DAL.DataBase d = new DAL.DataBase();

object o;

d.runSQL("select * from admin where userNName='" + name + "' and userNPwd='" + MD.MD52(pwd) + "'", out o);

d.close();

return o == null ? false : true;



}



这是web.config

<add name="str" connectionString="Data Source=116.255.188.245;User ID=chuangtian;Password=3361004peng;" />
sql拼接 看过去还没过滤的样纸

看看表admin是否存在,
[解决办法]
连接字符串没有指定数据库?
[解决办法]

引用:
数据库名:chuangtian 后台表名:admin

没看到,只看到你的用户名是chuangtian
[解决办法]
引用:
<add name="str" connectionString="Data Source=116.255.188.245;User ID=chuangtian;Password=3361004peng;" />

这句话有什么 问题吗

问题大了,你没发现你没有指定数据库么?
[解决办法]
Initial Catalog=chuangtian到哪里去了。
[解决办法]
<add name="str" connectionString="Data Source=116.255.188.245;Database=chuangtian;User ID=sa;Password=3361004peng;" />

如果不是默认的sa账户的话,自己修改下。
[解决办法]
你可以在SQL Server Management Studio先测试和服务器是否能连上,然后再复制自动生成的连接字符串,或者和服务器管理员联系。
[解决办法]
引用:
你可以在SQL Server Management Studio先测试和服务器是否能连上,然后再复制自动生成的连接字符串,或者和服务器管理员联系。


一般这样
[解决办法]
数据库没有连接 initial catalog=数据库名,你可以直接改成你的数据库的服务器名字,
[解决办法]
你也可以加个断点试试程序的运行效果,找到sql语句,复制到数据库中试试


[解决办法]

引用:
<add name="str" connectionString="Data Source=116.255.188.245;Database=chuangtian;User ID=sa;Password=3361004peng;" />

如果不是默认的sa账户的话,自己修改下。


是server=116.255.188.245;
[解决办法]
引用:
数据库名:chuangtian 后台表名:admin

你确定你的数据库名字是chuangtian?看你的连接字符串没有写数据库名称啊,只有用户名是chuangtian;要是数据库用户名都是chuangtian试试下面的:
<add name="str" connectionString="Data Source=116.255.188.245;Initial Catalog=chuangtian; User ID=chuangtian;Password=3361004peng;" />

[解决办法]
表admin在sql中是关键字,不要用关键字定义表.
如果用sql语句得select * from [admin]即用[]将关键字括起来作为表。
[解决办法]
你的检查下数据库的表 admin表名 前面是不是有个空格?
[解决办法]
引用:
这是数据库表
好像有个空格
[解决办法]
路过,学习一下了。。
[解决办法]
同意22楼,应该先拿sql去数据库中执行下看看是否有问题,再拿到程序中去用
[解决办法]
你的数据库在哪在本机还是在服务器上面呢,除上上面所说要加上数据库连接的数据库名,还要看你的服务器是不是可以访问IP为:116.255.188.245的这个PC。
[解决办法]
你数据库是不是没有启动TCP/IP登陆方式啊?
[解决办法]
断点调试取出SQL,在数据库中单独运行下SQL就知道什么问题了
[解决办法]
你把表名admin改了,改成admin1什么的,都可以就是不要为admin。
[解决办法]
Data Source=116.255.188.245;User ID=chuangtian;Password=3361004peng;database=chuangtian;数据库空间申请时会给你用户名和密码,你程序中忘了连接数据库,再就是登录名和数据库名是一样吗?
[解决办法]
<add name="str" connectionString="Data Source=116.255.188.245;Database=chuangtian;User ID=sa;Password=3361004peng;" />
数据库呢:



/// <summary>
/// 添加视频分类
/// </summary>
/// <param name="column">栏目实例引用</param>
public int Add(VideoClass column)
{
StringBuilder sql = new StringBuilder(256);
sql.AppendFormat( "INSERT INTO {0}",this.tableName);
sql.Append( " ([Name],Intro,ParentId,RootId,OrderId,GlobalOrder,Depth");
sql.Append(",Path,IsRecommanded,IsHidden,MetaKeywords,MetaDescription,ClassPicUrl,Memo,Year,Area,Class,Actor,Director,TypeIds)");
sql.Append(" VALUES(@Name,@Intro,@ParentId,@RootId,@OrderId,@GlobalOrder,@Depth");


sql.Append(",@Path,@IsRecommanded,@IsHidden,@MetaKeywords,@MetaDescription,@ClassPicUrl,@Memo,@Year,@Area,@Class,@Actor,@Director,@TypeIds)");
sql.Append(" ;SELECT @NewId=@@IDENTITY");

SqlParameter[] parameters = {
new SqlParameter("@Name",SqlDbType.NVarChar,20),
new SqlParameter("@Intro",SqlDbType.NVarChar,200),
new SqlParameter("@ParentId",SqlDbType.Int),
new SqlParameter("@RootId",SqlDbType.Int),
new SqlParameter("@OrderId",SqlDbType.Int),
new SqlParameter("@GlobalOrder",SqlDbType.VarChar,100),
new SqlParameter("@Depth",SqlDbType.Int),
new SqlParameter("@Path",SqlDbType.VarChar,100),
new SqlParameter("@IsRecommanded",SqlDbType.Bit),
new SqlParameter("@IsHidden",SqlDbType.Bit),
new SqlParameter("@MetaKeywords",SqlDbType.NVarChar,200),
new SqlParameter("@MetaDescription",SqlDbType.NVarChar,500),


new SqlParameter("@ClassPicUrl",SqlDbType.VarChar,100),
new SqlParameter("@Memo",SqlDbType.NVarChar,200),
new SqlParameter("@NewId",SqlDbType.Int),
new SqlParameter("@Year",SqlDbType.VarChar,100),
new SqlParameter("@Area",SqlDbType.VarChar,100),
new SqlParameter("@Class",SqlDbType.VarChar,100),
new SqlParameter("@Actor",SqlDbType.VarChar,100),
new SqlParameter("@Director",SqlDbType.VarChar,100),
new SqlParameter("@TypeIds",SqlDbType.VarChar,100),
};

parameters[0].Value = column.Name;
parameters[1].Value = column.Intro;
parameters[2].Value = column.ParentId;
parameters[3].Value = column.RootId;
parameters[4].Value = column.OrderId;
parameters[5].Value = column.GlobalOrder;
parameters[6].Value = column.Depth;
parameters[7].Value = column.Path;


parameters[8].Value = column.IsRecommanded;
parameters[9].Value = column.IsHidden;
parameters[10].Value = column.MetaKeywords;
parameters[11].Value = column.MetaDescription;
parameters[12].Value = column.ClassPicUrl;
parameters[13].Value = column.Memo;
parameters[14].Direction = ParameterDirection.Output; //输出参数,本次生成的新Id
parameters[15].Value = column.Year;
parameters[16].Value = column.Area;
parameters[17].Value = column.Class;
parameters[18].Value = column.Actor;
parameters[19].Value = column.Director;
parameters[20].Value = column.TypeIds;

//添加到数据库中
SQLHelper.ExecuteNonQuery(sql.ToString(),parameters);

//获取输出参数并返回
if (parameters[14].Value == DBNull.Value)
{
return -901; //数据库错误
}
else
{
return (int)(parameters[14].Value);
}
}


sql拼接一定要规范
[解决办法]
[admin] --这样试试


d.runSQL("select * from [admin] where userNName='" + name + "' and userNPwd='" + MD.MD52(pwd) + "'", out o);

[解决办法]
1.将select * from admin 的admin用括号括起来 [admin],结合程序使用select * from [admin]查询看有没有数据
2.确保链接账户密码正确的情况下,使用的链接类型有下面这两种
<add name="str" connectionString="Data Source=116.255.188.245;Initial Catalog=chuangtian;User ID=chuangtian;Password=3361004peng;" />
Data Source与Initial Catalog搭配是不是非要这样做,我就不知道了
<add name="str" connectionString="server=116.255.188.245;uid=chuangtian;pwd=3361004peng;database=chuangtian;" />
--------------
再者,如果你的数据库就是在服务器,你大可不写IP,直接写Data Source=localhost,你还公开放到csdn来我严重怀疑你连错数据库了



[解决办法]
这也太……好歹也把ip给改了啊
如果你老板看到你一定会……懂的

读书人网 >asp.net

热点推荐