ASP.NET

ASP.NET

1.Session

:be used to save the data between different pages in one WebApplication.different user has different session ,and their session can not be used together.
Application:be used between all user ,different can use a same webApplication ,one user change a data in the Application’s params, other users can also see it .

2.//“Session”. && ”Cookies” &&. ”Application”

Session:one user has one it own ‘Session’,the ’Session’ is saved on the Server Side.
Cookies:one user will has their own ‘Cookies’ ,’Cookies ’is saved on the Client Side ,it means it saved in you computer disk.
Application:all user shared the ‘Application’ together ,it is saved on the Server Side,if one user changed one part of the ‘Appication’
All user can notice the change.

when you want to change the background color or other of color for the controls in the asp , you should use
System.Drawing.Color.XXX

case “Red”:
this.DropDownList1.BackColor = System.Drawing.Color.Red;
break;

3.ASP.Net的AutoPostBack属性

https://blog.csdn.net/G_Q_L/article/details/76718876

当在一个asp页面中实现2个dropdownlist联动时,dropdownlist1的加载数据事件一定要写在if(!IsPostBack){}中。
因为dropdownlist1在触发SelectedIndexChanged时会向服务器回发数据,这个时候Page_Load事件会再次触发,会造成dropdownlist1数据的重复绑定,联动操作会失败。

4.在用表单传递参数,然后在读取该表单传输的数据时要注意在传递参数时我们应该已经将用户的输入值在表单时已经经过筛选与判断不符合要求
(如:null,空串“”等)在那时我们已经用‘Trim()’与‘ToString()’与其他我们自定义的方法进行了筛选。所以在读取表单传递的参数时
我们就已经可以简单的处理数据(如:只需判断是否为null即是否在传递过程中出错导致对象不能传输,而不用考虑所传对象是否为“”等错误)。
参考代码:
//以下代码在_Default.aspx中

用户您好!现在时间是:  
您还未登录本网站,如需登录,请 点击me
  
</div>
    <asp:Panel ID="Panel2" runat="server" Height="41px" Width="247px" Font-Size="9pt" HorizontalAlign="Left">
        请输入您的姓名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="登录" OnClick="Button1_Click" /></asp:Panel>
    &nbsp;&nbsp;
</form>

//以下代码在_Default.asp.cs中
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.Label1.Text = DateTime.Now.ToLongDateString();
this.Panel2.Visible = false;

    }
}
protected void Button1_Click(object sender, EventArgs e)
{
    if (this.TextBox1.Text.Trim() != "")
    { 
     Response.Redirect("Default2.aspx?UserName="+TextBox1.Text.Trim());
    }
   
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
    this.Panel1.Visible = false;
    this.Panel2.Visible = true;
}

}

//以下代码在_Default2.aspx.cs中
public partial class _Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request[“UserName”] != null)
{
this.Label1.Text = Request[“UserName”].ToString();
}

}   

}

5.注意:

当我们在设计一个用户表单时能使用列表让用户选择的就尽量使用列表,以避免不同用户不同输入习惯造成的不必要麻烦。在设计列表时尽量不要让存储的
内容用英文或中文存储在数据库中,因为这样占用内存过于大,二是尽量为这些选项制定一定的特殊数字标号,这样将大大减小他们在数据库中的存储空间。

6.ASP.NET数据绑定

注意:一旦指定了数据绑定,就需要激活它,可以通过调用控件或页面对象的DataBind方法来激活数据绑定。
  在页面的Load事件中调用DataBind方法。如果没有在Load事件中调用DataBind方法的话,ASP.NET将忽略数据绑定表达式,在页面上将以空值的形式呈现。
  https://www.cnblogs.com/spilledlight/p/4869058.html(很好的文章)
https://www.cnblogs.com/dongteng/p/6210247.html
https://www.cnblogs.com/xgao/p/4174216.html

7.ASP.NET与ADO.NET区别:

asp.net是微软公司的.Net技术框架下的B/S(网页方向)框架技术.
ado.net则是由asp.net编程语言编写的数据访问层的总括.
跟你说明白点:asp.net是用来编写动太网页,而动太网页必定要与数据库相连来进行数据交换.而用来数据交换的技术称之为ado.net,它依然是由编写当前asp.net程序的编程语言编写.
它只是一种概念.
ado.net属于asp.net.
ado属于asp.
ADO.NEThttps://blog.csdn.net/xiaojunjor/article/details/72883990
https://docs.microsoft.com/zh-cn/dotnet/framework/data/adonet/ado-net-overview
https://blog.csdn.net/binggetong/article/details/51339152
https://www.cnblogs.com/best/p/7714500.html

8.DropDownList注意点:

<asp:DropDownList ID=“ddlOperator” runat=“server”>
asp:ListItem–请选择运算符号–</asp:ListItem>
asp:ListItem+</asp:ListItem>
asp:ListItem-</asp:ListItem>
asp:ListItem*</asp:ListItem>
asp:ListItem/</asp:ListItem>
</asp:DropDownList>
如上代码中‘ListItem’ 的value即为个尖括号之间的数,所以asp:ListItem不需要在添加任何id与value属性,因为它只是作为asp:DropDownList的附属,这一切的value等都需要我们从asp:DropDownList中来得到。

9.但只数据绑定时注意:

在单值数据绑定时如果我们将数据传给类似Text等类似属性时,如果我们通过函数得到结果,在函数的最后一定要将结果转换为字符串。eg:
在Default.asp中:

在这里插入代码片<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>绑定方法调用的结果</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        &nbsp;<table>
            <tr>
                <td colspan="2">
                    绑定方法调用的结果</td>
                <td style="width: 100px">
                </td>
            </tr>
            <tr>
                <td style="width: 100px">
                    第一个数:</td>
                <td style="width: 100px">
                    <asp:TextBox ID="txtNum1" runat="server" Width="60px">0</asp:TextBox></td>
                <td style="width: 100px">
                    <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="txtNum1"
                        ErrorMessage="输入数字" Operator="DataTypeCheck" Type="Double"></asp:CompareValidator></td>
            </tr>
            <tr>
                <td style="width: 100px">
                    第二个数:</td>
                <td style="width: 100px">
                    <asp:TextBox ID="txtNum2" runat="server" Width="60px">0</asp:TextBox></td>
                <td style="width: 100px">
                    <asp:CompareValidator ID="CompareValidator2" runat="server" ControlToValidate="txtNum2"
                        ErrorMessage="输入数字" Operator="DataTypeCheck" Type="Double"></asp:CompareValidator></td>
            </tr>
            <tr>
                <td style="width: 100px; height: 24px">
                    运算符号:</td>
                <td style="width: 100px; height: 24px">
                    <asp:DropDownList ID="ddlOperator" runat="server">
                        <asp:ListItem>--请选择运算符号--</asp:ListItem>
                        <asp:ListItem>+</asp:ListItem>
                        <asp:ListItem>-</asp:ListItem>
                        <asp:ListItem>*</asp:ListItem>
                        <asp:ListItem>/</asp:ListItem>
                    </asp:DropDownList></td>
                <td style="width: 100px; height: 24px">
                </td>
            </tr>
            <tr>
                <td style="width: 100px">
                </td>
                <td style="width: 100px">
                    <asp:Button ID="btnOk" runat="server" Text="确定" /></td>
                <td style="width: 100px">
                </td>
            </tr>
            <tr>
                <td style="width: 100px">
                    运算结果:</td>
                <td style="width: 100px">
                    <asp:Label ID="Label1" runat="server" Text='<%#operation(ddlOperator.SelectedValue) %>'/></td>
                <td style="width: 100px">
                </td>
            </tr>
        </table>
    
    </div>
    </form>
</body>
</html>

在Default.asp.cs中

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;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {       
            Page.DataBind();
    }
    public string operation(string VarOperator)
    {
        double num1=Convert.ToDouble (txtNum1.Text);
        double num2=Convert.ToDouble (txtNum2.Text);
        double result = 0;
        switch (VarOperator)
        {
            case "+":
                result = num1 + num2;
                break ;
            case "-":
                result = num1 - num2;
                break ;
            case "*":
                result = num1 * num2;
                break ;
            case "/":
                result = num1 / num2;
                break ;
        }
        return result.ToString ();
    }
}

10.AutoGenerateEditButton:

Gets or sets a value indicating whether a CommandField field column with an Edit button for each data row is automatically added to a GridView control.

11.what do " if (e.Row.RowType == DataControlRowType.DataRow)"mean?


  protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            ((LinkButton)e.Row.Cells[0].Controls[0]).Attributes.Add("onclick", "return confirm('确定要删除吗?')");
        }
    }

在这里插入图片描述

12. GridView1.DataKeys[e.RowIndex].Value.ToString()的用法诠释

grid1.DataKeys[e.RowIndex].Value.ToString()的用法诠释

一、先来说下:[e.RowIndex]里的 e 和Datakeys的意思:

1、

e实际上是一个事件参数,当你点哪行e就是哪行,可以用RowIndex属性来取得该行的索引;

2、

而DataKeys是GridView的主键,可以使用DataKeys[行号]的方式取得,它返回一个DataKey

对象,然后就可以用DataKey.Value得到该行的主键值。
注意:在将数据源绑定到GridView上时,应该指定它的DataKeyField属性,才能正常使用。

二、再来解释下GridView1.DataKeys:

举个例子来说吧  你将一个student表绑定到grid上  这个表里有一些字段 包括id  姓名  学号 等等 

 grid的DataKey 属性设置了 datakey=“学号”
下边开始解释问题
GridView1.DataKeys是一个数组, 存储的是数据表中的一列的值 , 这一列 就是设为DataKeys的一列

即[学号]这一列 GridView1.DataKeys[e.RowIndex]则是学号这一列这个数组中的一个值,

  索引为当前行的行号  也就是说GridView1.DataKeys[e.RowIndex]是当前行所对应的数据行这一行

 的学号这个datakey。

GridView1.DataKeys[e.RowIndex].Value是什么?

这里就是当前行所对应的数据行这一行的学号这个datakey 所存储的值 即当前选择这个学生的学号。

三、也许大家会对下面的问题感到疑惑:

GridView1.DataKeys[GridView1.SelectedIndex].Value.ToString() 
与 
GridView1.DataKeys[e.RowIndex].Value.ToString()  的区别

是不同事件中获取当前选中行行号的不同方法  
在grid的行相关事件中  可以直接用e来得到当前行 但是在非grid行事件中 作为e的事件触发对象就不是行,

 所以要用GridView1.SelectedIndex 来获取当前选中行的行号

13.什么是存储过程呢?

存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令。
通俗来讲:存储过程其实就是能完成一定操作的一组SQL语句。

那为什么要用存储过程呢?
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时,可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量。
4.安全性高,可设定只有某些用户才具有对指定存储过程的使用权
https://blog.csdn.net/qq_41786318/article/details/79559986 (good)
https://blog.csdn.net/zhangchen124/article/details/51339456 (good)

使用Command对象调用数据库存储过程:
 protected void btnAdd_Click(object sender, EventArgs e)
    {
        if (this.txtClassName.Text!= "")
        { 

            SqlConnection myConn = GetConnection();
            myConn.Open();
            SqlCommand myCmd = new SqlCommand("InsertClass", myConn);
            myCmd.CommandType = CommandType.StoredProcedure;
            myCmd.Parameters.Add("@ClassName", SqlDbType.VarChar, 50).Value = this.txtClassName.Text.Trim();
            myCmd.ExecuteNonQuery();
            myConn.Close();
            this.bind();
        }
        else
            this.bind();    
        
    }
}

14.避免 SQL 注入攻击

https://blog.csdn.net/yizhenn/article/details/52384601 (good)
https://wenku.baidu.com/view/b6c5744d58fafab069dc02fb.html (good)
SQL注入只能对编译过程起作用
显然,这样是无法阻止SQL注入的。在MyBatis中,“ x x x ” 这 样 格 式 的 参 数 会 直 接 参 与 S Q L 编 译 , 从 而 不 能 避 免 注 入 攻 击 。 但 涉 及 到 动 态 表 名 和 列 名 时 , 只 能 使 用 “ {xxx}”这样格式的参数会直接参与SQL编译,从而不能避免注入攻击。但涉及到动态表名和列名时,只能使用“ xxxSQL使{xxx}”这样的参数格式。所以,这样的参数需要我们在代码中手工进行处理来防止注入。

【结论】在编写MyBatis的映射语句时,尽量采用“#{xxx}”这样的格式。若不得不使用“${xxx}”这样的参数,要手工地做好过滤工作,来防止SQL注入攻击。
#{}:相当于JDBC中的PreparedStatement

${}:是输出变量的值

简单说,#{}是经过预编译的,是安全的;${}是未经过预编译的,仅仅是取变量的值,是非安全的,存在SQL注入。

如果我们order by语句后用了${},那么不做任何处理的时候是存在SQL注入危险的。你说怎么防止,那我只能悲惨的告诉你,你得手动处理过滤一下输入的内容。如判断一下输入的参数的长度是否正常(注入语句一般很长),更精确的过滤则可以查询一下输入的参数是否在预期的参数集合中。

原文(http://www.cnblogs.com/200911/p/5869097.html)

https://blog.csdn.net/zhang_123xiao/article/details/59105721 (ok)

15.CommandType:

CommandType.Text代表执行的是SQL语句(in default the system help you set the CommandType as “CommandType.Text”)
CommandType.StoreProcedure代表执行的是存储过程
CommandType代表要执行的类型
CommandType是SqlCommand对象的一个属性,用于指定执行动作的形式,它告诉.net接下来执行的是一个文本(text)、存储过程(StoredProcedure)还是表名称(TableDirect).
if you set “CommandType.StoredProcedure”, if you have a parameter you must declare “SqlDataCommand1.CommandType=CommandType.StoredProcedure” explictly,if not program will not work.

16.SqlCommand:表示要对 SQL Server 数据库执行的一个 Transact-SQL 语句或存储过程。 此类不能被继承。
https://blog.csdn.net/l245504430/article/details/53156994

17.GridLines=“None” :
GridView.GridLines Property
定义
命名空间:
System.Web.UI.WebControls
Assembly:
System.Web.dll
获取或设置 GridView 控件的网格线样式。

示例
下面的示例演示如何使用GridLines属性来隐藏中的网格线GridView控件。
ASP.NET (C#)

复制

<%@ Page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>GridView GridLines Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>GridView GridLines Example</h3>
      
      <asp:gridview id="CustomersGridView" 
        datasourceid="CustomersSqlDataSource" 
        autogeneratecolumns="true"
        gridlines="None"
        runat="server">
      </asp:gridview>
            
      <!-- This example uses Microsoft SQL Server and connects  -->
      <!-- to the Northwind sample database. Use an ASP.NET     -->
      <!-- expression to retrieve the connection string value   -->
      <!-- from the Web.config file.                            -->
      <asp:sqldatasource id="CustomersSqlDataSource"  
        selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
        runat="server">
      </asp:sqldatasource>
            
    </form>
  </body>
</html>

GridLines是网格,None 就是不显示网格,GridLines.None不显示网格线。GridLines.Horizontal仅显示水平网格线。GridLines.Vertical仅显示垂直网格线。GridLines.Both同时显示水平和垂直网格线

18.Gridview AutoGenerateColumns属性:https://www.cnblogs.com/Paira7/p/6282433.html

19.使用Command对象实现数据库事务处理

https://www.cnblogs.com/lhyqzx/p/6440959.html

使用Command对象实现数据库事务处理 protected void btnAdd_Click(object sender, EventArgs e) { SqlConnection myConn = GetConnection(); myConn.Open(); string sqlStr = "insert into tb_Class1(ClassName) values('" + this.txtClassName.Text.Trim() + "')"; SqlTransaction sqlTrans = myConn.BeginTransaction(); SqlCommand myCmd = new SqlCommand(sqlStr, myConn); myCmd.Transaction = sqlTrans; try { myCmd.ExecuteNonQuery(); sqlTrans.Commit(); myConn.Close(); this.bind(); } catch { Response.Write("<script>alert('插入失败,执行事务回滚')</script>"); sqlTrans.Rollback(); } }

20.bootstrap中图标样式caret实现各种三角形:http://blog.51cto.com/shaoude/1611819
https://blog.csdn.net/pigsuper/article/details/43053679 (best)

21.浏览器工作原理详解(关于浏览器内部机制)

https://blog.csdn.net/dangnian/article/details/50876241 (best)

22.GridView 编辑 删除——TemplateField的基础用法:

https://blog.csdn.net/NightCharm/article/details/53615266
https://blog.csdn.net/yl_99/article/details/6921686 (best)

23.AppSettings && ConnectionStrings:

https://blog.csdn.net/grpideas/article/details/7256115
https://www.cnblogs.com/leesmn/archive/2010/06/25/1764990.html (best)
https://blog.csdn.net/m18633778874/article/details/78811097?foxhandler=RssReadRenderProcessHandler
https://www.cnblogs.com/bindot/archive/2013/03/07/def.html
https://www.cnblogs.com/leesmn/archive/2010/06/25/1764990.html

24.c#.net语句e.Row.RowType == DataControlRowType.DataRow是什么含义?

c#.net语句e.Row.RowType == DataControlRowType.DataRow是什么含义?

事件语句 
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
if (e.Row.RowType == DataControlRowType.DataRow) 
{ 
e.Row.Cells[3].Text = Convert.ToDateTime(e.Row.Cells[3].Text).ToShortDateString(); 
} 
} 
中 
e.Row.RowType 是什么意思? 
DataControlRowType.DataRow又表示什么?


e.Row.RowType 是指当前行的类型 
DataControlRowType 是GridView的行的类型集合 其中的DataRow是数据绑定行

这个判断语句的意思就是判断当前行是不是数据绑定行

是绑定时用来过滤标题行和序号行等等非数据绑定行的

 

if (e.Row.RowType == DataControlRowType.DataRow) 
意思是,如果行的类别是数据行,就执行, 
e.Row.RowType 是指当前行的类型 
DataControlRowType 是GridView的行的类型集合 其中的DataRow是数据绑定行 

DataControlRowType.DataRow DataControlRowType 枚举类型之一 

Header 数据控件的标题行。标题行不能绑定数据。 
Footer 数据控件的脚注行。脚注行不能绑定数据。 
DataRow 数据控件的数据行。只有 DataRow 行能绑定数据。 
Separator 行分隔符。行分隔符不能绑定数据。 
Pager 显示页按钮或页导航控件的行。页导航行不能绑定数据。 
EmptyDataRow 显示页按钮或页导航控件的行。页导航行不能绑定数据。

25.DataPager:

https://www.cnblogs.com/Olimpic2008/p/4295085.html
https://blog.csdn.net/fangq/article/details/2584707 (good)

26.e.Row.RowType == DataControlRowType.DataRow诠释

https://www.cnblogs.com/zhchongyao/archive/2009/12/25/1632029.html
https://www.cnblogs.com/jhxk/articles/1666818.html

27.什么是AutoPostBack?

AutoPostBack =True 时, 你使之失去焦点,你会看到浏览器有刷新,后台重新加载一次.


    AutoPostBack属性值

Asp.Net控件的AutoPostBack的属性值为True和False,True表示与服务器交互,False表示不与服务器交互。

DropDownList.AutoPostBack 属性

当使用服务器控件dropdownlist时,如果要用的它的SelectedIndexChanged事件,那么必须把该属性设为true。否则SelectedIndexChanged事件是不会触发的,因为AutoPostBack 为false时,该控件是不会与后端服务器交互的。当把AutoPostBack 设为true时,如果DropDownList中的选择项发生改变,那么就会触发页面的回发,自然SelectedIndexChanged事件就生效了。

TextBox.AutoPostBack 属性

当TextBox设置AutoPostBack =True时,在控件中按 Enter 或 Tab 键时,都会发生自动回发到服务器的操作。

Button按钮

Button控件没有AutoPostBack属性,但是Click的事件会自动执行回发操作。

当在一个asp页面中实现2个dropdownlist联动时,dropdownlist1的加载数据事件一定要写在if(!IsPostBack){}中。
因为dropdownlist1在触发SelectedIndexChanged时会向服务器回发数据,这个时候Page_Load事件会再次触发,会造成dropdownlist1数据的重复绑定,联动操作会失败。

---------------------

本文来自 G_Q_L 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/G_Q_L/article/details/76718876?utm_source=copy 

https://www.cnblogs.com/jiangu66/archive/2013/07/31/3228785.html (best)
http://blog.sina.com.cn/s/blog_4c9ae6fc0100e40r.html

28.Asp.net中,点击GridView表头实现数据的排序

protected voidgvData_Sorting(objectsender, GridViewSortEventArgs e)        {            stringsPage = e.SortExpression;             if(ViewState["SortOrder"].ToString()== sPage)            {                if(ViewState["OrderDire"].ToString()== "Desc")                     ViewState["OrderDire"] = "ASC";                else                    ViewState["OrderDire"] = "Desc";            }            else            {                ViewState["SortOrder"] =e.SortExpression;            }            bind();        } 

---------------------

本文来自 hxj135812 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/hxj135812/article/details/20905291?utm_source=copy 

https://blog.csdn.net/hxj135812/article/details/20905291 (best)

29.一些数据格式化-Eval( " ")和DataBinder.Eval(Container.DataItem, " ")的区别及用法

https://www.cnblogs.com/lh123/p/3979111.html (good)
https://www.cnblogs.com/mvv118/p/3851457.html (good)

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值