小编Tom*_*icz的帖子

如何在C#中使用SqlDataReader获取行数

我的问题是如何SqlDataReader在C#中获取查询返回的行数.我已经看到了一些关于此的答案,但没有明确定义,除了一个声明用Read()方法做一个while循环并增加一个计数器.

我的问题是我试图填充一个多维数组,第一行是列标题名称,后面的每一行都是行数据.

我知道我可以将这些东西转储到List控件中而不用担心它,但是对于我自己的个人启发,我还想在我选择的时候将数据拉入和拉出阵列,并以不同的格式显示它.

所以我认为我不能这样做Read()然后增加++方式,因为这意味着我必须打开Read()然后Read()再次打开以获得行数然后列数据.

只是我正在谈论的一个小例子:

int counter = 0;    

while (sqlRead.Read())
{
    //get rows
    counter++
}
Run Code Online (Sandbox Code Playgroud)

然后一个for循环运行列和弹出

something.Read();

int dbFields = sqlRead.FieldCount;

for (int i = 0; i < dbFields; i++)
{
   // do stuff to array
}
Run Code Online (Sandbox Code Playgroud)

c# sqldatareader

93
推荐指数
5
解决办法
26万
查看次数

是什么原因:"注意:未初始化的字符串偏移"出现?

我有一个用户填写的表单,并在表单上有多个相同的字段,如"项目名称","项目日期","catagory"等.根据用户提交的表单数量,我的目标是:

  1. 循环遍历表格的数量
  2. 创建单独的SQL插入语句

但是,PHP向我发出了一条我似乎不明白的通知:

注意:

注意:未初始化的字符串偏移:第90行的1 ... dataPasser.php

PHP

$myQuery = array();

if ($varsCount != 0)
{
  for ($i=0; $i <= $varsCount; $i++)
  {
    $var = "insert into projectData values ('" . $catagory[$i] . "', '" .  $task[$i] . "', '" . $fullText[$i] . "', '" . $dueDate[$i] . "', null, '" . $empId[$i] ."')";
    array_push($myQuery, $var);     
  }
}
Run Code Online (Sandbox Code Playgroud)

我有这个问题的参考,但它们并不准确,我无法推断实际问题源于何处.我非常感谢任何有助于理解导致数组未正确初始化的原因.

php arrays

58
推荐指数
3
解决办法
17万
查看次数

物理服务器转换时SQL Server 2008 Open Master Key错误

我将SQL Server数据库从一个系统复制到下一个相同的设置,但是完全不同的物理机器.我使用Norton Ghost手动恢复文件,例如,重新安装SQL Server 2008 Express后,在c:\ Program Files中找到的整个SQL Server 2008文件夹.

我的一个数据库在其中一个表列上启用了AES_256加密.我重置我的IIS7并试图运行访问数据库的应用程序,检索数据后,我收到此错误:

'/'应用程序中的服务器错误.请在执行此操作之前在数据库中创建主密钥或在会话中打开主密钥.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.Data.SqlClient.SqlException:请在执行此操作之前在数据库中创建主密钥或在会话中打开主密钥.

来源错误:

在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.

我已经完成了一些阅读,并找到了一些关于AES加密如何与机器密钥相关联的链接,但是如何将其复制到新系统却不知所措.或者甚至可能不是这样.

注意:我尝试删除对称密钥,证书和主密钥并重新创建它们.这消除了错误,但是通过AES_256加密的数据没有显示出来.但是,未加密的列可以执行.

任何帮助将非常感激.提前致谢!

sql encryption aes sql-server-2008

24
推荐指数
2
解决办法
3万
查看次数

在ASP.NET和C#中手动进行AJAX调用

我想在ASP.NET中编写自己的AJAX,而不是使用ASP.NET ScriptManager等.

为什么?我喜欢手动做东西并且知道内部的东西是如何工作的,所以我只想自己做.

所以我的问题是,在我进行AJAX调用之后:

var ajaxCall = new XMLHttpRequest();
....
ajaxCall.send(null)
Run Code Online (Sandbox Code Playgroud)

我怎样才能在C#中添加Page_Load(或不),以便它监听它并返回一个String例如.

c# asp.net ajax xmlhttprequest

9
推荐指数
2
解决办法
6895
查看次数

ASP.NET MVC模型验证打破了MVC规则?

使用ASP.NET MVC,我有一个模型,我附加属性,以便我可以使用MVC模型绑定验证,但这不会打破MVC的规则,你放置属于的项目视图,进入模型?我希望我不是为了变得聪明,但我对其他人的意见感到好奇.

public class Payments
{
    [DataType(DataType.Text)]
    [DisplayFormat(NullDisplayText="")]
    [Display(Name="Payment Id")]
    [Required(ErrorMessage="Required")]
    public int PaymentId { get; set; } //todo: make this into a dropdown

    [DataType(DataType.Text)]
    [Display(Name="Bill Name")]
    [Required(ErrorMessage = "Required")]
    public string PaymentName { get; set; }

    [DataType(DataType.Date)]
    [Display(Name="Date to Post Payment")]
    [Required(ErrorMessage = "Required")]
    public DateTime PaymentDate { get; set; }

    [DataType(DataType.Currency)]
    [Range(0, 922337203685477.5807)]
    [Required(ErrorMessage = "Required")]
    public double PaymentAmount { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-mvc model view model-validation

6
推荐指数
2
解决办法
1801
查看次数

试图调用方法:未定义的函数错误

我有一个类连接到我的数据库,剥离东西并从数据库查询返回东西.无论如何,我遇到的问题是我试图调用runQuery()方法,但每次尝试时,我都会收到此错误:

致命错误:在DatabaseConnector.php第22行中调用未定义的函数runQuery()

也许有任何想法?我知道runQuery是私人的,但它属于同一类.只是为了踢,我把它改为公共任何方式,仍然有同样的错误:(

final class DatabaseConnector
{
    private $db;

    public function DatabaseConnector()
    {
        //  constructor
    }

    public function connectMySQL($host, $user, $passwrd, $db, $query)
    {
        @ $db = new mysqli($host, $user, $passwrd, $db);

        if (mysqli_connect_errno())
        {
            return mysqli_connect_errno();
        }
        else
        {
            $queryResult = runQuery($query);

            return $queryResult;
        }
    }

    private function runQuery($query)
    {
        $result = $db->query($query);

        return $result;
    }
}
Run Code Online (Sandbox Code Playgroud)

php methods class function

4
推荐指数
1
解决办法
1364
查看次数

ASP.NET MVC 2 DropDownList无法呈现

所以我不明白我在这里做错了什么.我想在我的ASP.NET MVC 2应用程序的母版页中填充DropDownList.

Projects.Master

<div id="supaDiv" class="mainNav">
 <% Html.DropDownList("navigationList"); %>
</div>
Run Code Online (Sandbox Code Playgroud)

MasterController.cs

namespace ProjectsPageMVC.Controllers.Abstracts
{
    public abstract class MasterController : Controller
    {
        public MasterController()
        {
          List<SelectListItem> naviList = new List<SelectListItem>();

          naviList.Add(new SelectListItem
          {
           Selected = true,
           Text = "AdvanceWeb",
           Value = "http://4168web/advanceweb/"
          });

          naviList.Add(new SelectListItem
          {
           Selected = false,
           Text = " :: AdvanceWeb Admin",
           Value = "http://4168web/advanceweb/admin/admindefault.aspx"
          });

          ViewData["navigationList"] = naviList;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

DropDownList甚至没有出现在DOM中,我不知道我做错了什么.

ProjectsController

namespace ProjectsPageMVC.Controllers
{
    public class ProjectsController : MasterController
    {
        public ActionResult Index()
        { …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc drop-down-menu

4
推荐指数
1
解决办法
2465
查看次数

T-SQL:将新的INSERT标识返回给C#

我正在使用存储过程将值放入SQL Server.过程将向添加的行添加ID.我需要将此ID返回到我的代码中.

目前我可以在Visual Studio的OUTPUT窗口中看到输出ID,但似乎无法在我的代码中捕获它.以下是proc的摘要版本:

SQL:

CREATE PROCEDURE dbo.DoSomething
(
    @var1 INT = NULL,
    @var2 INT = NULL,
    @var3 DATE = NULL
)
AS

BEGIN

    INSERT INTO atable
    (
        vara,
        varb,
        varc
    )
    VALUES
    (
        @var1,
        @var2,
        @var3
    )

    RETURN SCOPE_IDENTITY()

END
Run Code Online (Sandbox Code Playgroud)

C#:

int result = 0;

/// create command
SqlCommand cmd = new SqlCommand("DoSomething", this.OpenSqlConnection());
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@var1", thing.value1);
cmd.Parameters.AddWithValue("@var2", thing.value2);
cmd.Parameters.AddWithValue("@var3", thing.value3);


/// send data to db
result = (int)cmd.ExecuteScalar();
Run Code Online (Sandbox Code Playgroud)

所以我收到一个错误:对象引用未设置为对象的实例.当它到达(int)cmd.ExecuteScalar()时.

有任何想法吗?

c# sql return-value scope-identity

4
推荐指数
2
解决办法
9661
查看次数

EntityFramework和FluentAPI使用ComplexTypes

我正在使用Entity Framework 4.3 Code-FIrst创建一个新的数据库模型; 使用Fluent API.假人模型如下.

所以我的主要对象是Something,我需要跟踪这个.所有其他项目都是免费的.通常在数据库中,我会分配一个表,例如Contact,主键和关系的foregin键.但是,阅读更多有关Fluent API和复杂类型的内容,特别是本文,我注意到(我认为)我可以让EF负责链接这些对象/表格,我不必担心它们作为存储库我的MVC应用程序.

所以请注意:

  • 联系人有一对多的东西
  • 地址与联系人有一对多
  • 与PhoenNumber有一对多联系

知道了这一点,我的困惑在于复杂类型,因为Contact是Somethign的Complext类型,Address和PhoneNumber是Something to Something.

  • 如何在Fluent API中设置此关系?
  • 我怎么说地址是必需的?
  • 在ASP.NET MVC中使用域驱动开发,我是否必须维护IContactRepository和IAddressRepository的存储库以推送到控制器?

(请注意,为简洁起见,省略了一些代码.)

// attempt
void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.ComplexType<Contact>();

    modelBuilder.ComplexType<Contact>().Property(p => p.Address).IsRequired();  // COMPILER ERROR

    modelBuilder.ComplexType<Address>();
    modelBuilder.ComplexType<PhoneNumber>();    
}


// DUMMY MODEL
class Something()
{
    void Something()
    {
        this.Contact = new HashSet<Contact>( );
    }

    DateTime DOB { get; set; }
    int YearsEmployed { get; set; }
    ICollection<Contact> Contact { get; set; }
}

class Contact()
{
    void Contact() …
Run Code Online (Sandbox Code Playgroud)

entity-framework fluent complextype

3
推荐指数
1
解决办法
2344
查看次数

PHP类不会返回String

我是PHP的新手,所以我在学习时遇到一个小问题:

我构建了一个名为DataStrip.php的类

<?php

final class DataStrip
{
    public function DataStrip()
    {
        // constructor  
    }

    public function stripVars($vars)
    {

        return $vars;
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

然后我试图传递公共函数stripVars一个值:

<?php

    include_once ('lib/php/com/DataStrip.php');

    echo($projCat);
    $a = new DataStrip;
    $a->stripVars($projCat);
    echo($a);

?>
Run Code Online (Sandbox Code Playgroud)

但是,我收回了这个错误:

(!)可捕获的致命错误:类DataStrip的对象无法在myfilepath中转换为字符串

...对于我在这里可能做错的任何建议?现在这只是一个测试功能,因为我正在尝试习惯OOP PHP.:)

php oop return class

2
推荐指数
1
解决办法
7580
查看次数

使用ExternalInterface和IE从JavaScript获取Flash中的当前URL

我正在尝试获取Flash播放器所在的当前URL.不是.swf文件的URL,而是浏览器指向的URL.到目前为止我用过:

var st:String = ExternalInterface.call("window.location.href");
Run Code Online (Sandbox Code Playgroud)

不幸的是,这在IE中不起作用.从我的研究中,我可以看出它无论如何都不适用于IE.

我在互联网上发现的唯一另一件事就是在标签上加上"id"标签.

所以我试图找出是否和/或如何:

  1. 以某种方式使用IE和其他浏览器中的ExternalInterface进行调用,以返回给我当前的URL.

    要么

  2. 在标记上标记id ="PA"属性,让AS3读取该标记并将其作为String引入,而不使用JavaScript

我的限制是我只能将标记添加到HTML中,并且不能添加任何JavaScript函数.这必须在AS3中严格完成.

不管怎样,我需要知道我在哪个URL.任何帮助是极大的赞赏.

javascript internet-explorer actionscript-3 externalinterface

2
推荐指数
1
解决办法
6231
查看次数

ASP.NET内联表达式中的DBNull到String具有转换错误

嘿伙计们,我数据库中的一个表有一个字段"描述",允许'Nulls'.这在ASP.NET中呈现页面时会出现问题,因为我想确保我将字符串解码为数据库中的字符串,因为我正在编写它.当然,描述中有一些NULL.我希望保留的字段.

所以我的ASP.NET页面有这个代码

<asp:TextBox ID="DescInfo" Text='<%# HttpUtility.HtmlDecode((string)Eval("Description")) %>' />
Run Code Online (Sandbox Code Playgroud)

所以当我渲染页面时,我会得到:

Unable to cast object of type 'System.DBNull' to type 'System.String'.
Run Code Online (Sandbox Code Playgroud)

我看待它的方式,我有两个选择:

  • 在加载期间绑定

要么

  • 使表成为非NULL表并使用空值

任何人都有更好的想法吗?

asp.net string dbnull casting

2
推荐指数
1
解决办法
6126
查看次数